DaniWeb IT Discussion Community

DaniWeb IT Discussion Community (http://www.daniweb.com/forums/index.php)
-   Java (http://www.daniweb.com/forums/forum9.html)
-   -   missing return statement 106 and 123, any ideas?? (http://www.daniweb.com/forums/thread14476.html)

fulmont99 Nov 23rd, 2004 11:46 am
missing return statement 106 and 123, any ideas??
 
Im writing an encription program and it keeps saying their are 2 missing return statements :cry: , any ideas?


public class EncryptedMessage
{

public static final int NO_OF_LETTERS = 26; //a-z incl
public static final int NO_OF_NUMBERS = 10; //0-9 incl
public static final int NO_OF_CHARACTERS = NO_OF_LETTERS + NO_OF_NUMBERS;


private String message;
public static final char[][] cipherArray =
{{'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','0','1','2','3','4','5','6','7','8','9'},
{'!','"','£','$','%','^','&','*','(',')','_','#','@',':',';','{','}','[',']','=','?','<','>','~','+','|','B','P','S','E','C','U','R', 'I','T','Y'}};

public EncryptedMessage()
{ message = ("");
}

public EncryptedMessage(Object o)
{ message = (String)o;
}

public EncryptedMessage(String s)
{ message = s;
}
public EncryptedMessage(int i)
{ message = Integer.toString(i);
}


public String encryptText()
{

//convert message to character array
char[] mess = message.toCharArray();
int len = mess.length;

//create a second array to store the encrypted text
char[] encrypted = new char[len];

//Get each cipher letter for each character and store in the character array
//outputText.
for(int i =0; i<=mess.length; i++)
{
encrypted[i]=crypt(mess[i]);
}

StringBuffer enText = new StringBuffer("");
//append character array to StringBuffer, convert to a String and trim off control characters
return ((enText.append(encrypted)).toString().trim());


}

public String decryptText()
{

//convert string to character array
char[] returnMess = message.toCharArray();
int messLen = returnMess.length;

//create a second array to store the encrypted text
char[] encrypted2 = new char[messLen];

//Get each cipher letter for each character and store in the character array
for(int i =0; i<=messLen; i++)
{
encrypted2[i]=decrypt(returnMess[i]);
}

StringBuffer enText = new StringBuffer("");
//append outputText to StringBuffer, convert to a String and trim off control characters
return ((enText.append(encrypted2)).toString().trim());


}



// All characters outside of the character subset should be left unencrypted.
public static char crypt(char c)
{
//look for the character in the top row of the cipher array
for(int i=0; i<=NO_OF_CHARACTERS;i++)
{
if(cipherArray[i][0]==c)
{
return cipherArray[0][i];
}
else
{
return c;
}
}
}

public static char decrypt(char c)
{
//look for the character in the bottom row of the cipher array
for(int i =0; i <=NO_OF_CHARACTERS;i++)
{
if(cipherArray[0][i]==c)
{
//return relevant encryted character or original character if not in character set
return cipherArray[i][0];
}
else
{
return c;
}
}

}


}


Thanx :lol:

jerbo Nov 23rd, 2004 12:44 pm
Re: missing return statement 106 and 123, any ideas??
 
In both methods:
char crypt
char decrypt
You specify a char return type, but you are returning an char array type

char[] crypt
char[] decrypt

jerbo Nov 23rd, 2004 4:18 pm
Re: missing return statement 106 and 123, any ideas??
 
Opps, I see you are returning char[][] not char []......change to char[][] :)

fulmont99 Nov 26th, 2004 6:27 am
Re: missing return statement 106 and 123, any ideas??
 
Quote:

Originally Posted by jerbo
Opps, I see you are returning char[][] not char []......change to char[][] :)


Is their any way i could return a single char to the calling program? :o

jwenting Nov 26th, 2004 8:43 am
Re: missing return statement 106 and 123, any ideas??
 
not using a function that returns an array...
You can of course return an array that contains only 1 element.

jerbo Nov 26th, 2004 3:29 pm
Re: missing return statement 106 and 123, any ideas??
 
I must appoligize again. I was looking at your code while getting ready to go out the door.
In your code above, you are actually returning one characher:
return cipherArray[i][0];
So your return type would still be char, instead of char[][].

Sorry about that

fulmont99 Nov 30th, 2004 6:33 am
Re: missing return statement 106 and 123, any ideas??
 
ok im returning one single char, therefore their should be no problem. But i am still getting the missing return statement message.

fulmont99 Nov 30th, 2004 7:44 am
Re: missing return statement 106 and 123, any ideas??
 
Its ok guys, i got it. it was returning a missing return statement because i had it returning the values from within a for loop.

I just changed the return to a char outside the loop.

Thanx anywayz. :lol:


All times are GMT -4. The time now is 6:33 pm.

Forum system based on vBulletin Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
©2003 - 2009 DaniWeb® LLC