We're a community of 1076K IT Pros here for help, advice, solutions, professional growth and fun. Join us!
1,075,585 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Start New Discussion Reply to this Discussion

No return statement-Simple

Hey guys I keep getting the "no return statement error in two places, I have commented them for you

/**
 * A WordsCompare object stores Strings.  It is used to determine if the first word 
 * should be placed before or after the second word in the dictionary
 */
public class WordsCompare
{
	//instance fields
	private String wordOne, wordTwo;
	/**
	 *Input for word one and word two
	 *@param one enter word one
	 *@param two enter word two
	 */
	public WordsCompare(String one, String two)
	{
	wordOne=one;
	wordTwo=two;


	}

	/**
	 *compares the two strings
	 *
	 */
	public String getComparison()
	{
		// You must use an if..else statement in this method
		// If you would like to test for the strings being the same, use an if..else..else,
		// but that is optional.  It is not tested in this particular data set.
	
	if(wordOne.compareTo(wordTwo)>0)
	{
		return wordOne+" should be placed after "+wordTwo;
	}
	else if(wordOne.compareTo(wordTwo)<0)
	{
		return wordOne+" should be placed before "+wordTwo;
	}
	else if(wordOne.compareTo(wordTwo)==0)
	{
		return wordOne+" is the same as "+wordTwo;
	}
	
	}[B]//no return statement[/B]
	
	public String getCompareLength()
	{
		// You must use an if..else..else statement in this method	
		
		if (wordOne.length()>wordTwo.length())
		{
			return wordOne+" is longer than "+wordTwo;
		}
		else if (wordOne.length()<wordTwo.length())
		{
			return wordOne+" is shorter than "+wordTwo;
		}
		else if(wordOne.length()==wordTwo.length())
		{
			return wordOne+" is equal to "+wordTwo;
		}
		
	}[B]//No return statement[/B]

}
4
Contributors
7
Replies
11 Hours
Discussion Span
1 Year Ago
Last Updated
8
Views
Question
Answered
xiangzhuang
Newbie Poster
6 posts since Oct 2011
Reputation Points: 10
Solved Threads: 0
Skill Endorsements: 0

delete the last else if for each method and put a else
and ure done

ilovejava
Junior Poster in Training
77 posts since Sep 2011
Reputation Points: 10
Solved Threads: 2
Skill Endorsements: 0

Your problem is that although you know that one of those if tests must be true, the compiler isn't quite that smart, so it worries about the case where all 3 if tests are false and execution drops out of the last elseif. In that case it gets to the end of the method without returning a String. ilovejava's solution will fix it, or, if you want to keep the very explicit version of your if tests you can just add a final return ""; at the end of each method.

ps @ilovejava - that was a sensible solution, but you will help people even more if you give some explanation of what the problem was caused by, and how your solution fixes it. J.

JamesCherrill
... trying to help
Moderator
8,497 posts since Apr 2008
Reputation Points: 2,583
Solved Threads: 1,454
Skill Endorsements: 29

I think it would be better to return null instead of "". That way, the rest of the methods can check easier if there was any 'real' return.

hiddepolen
Posting Whiz in Training
297 posts since Oct 2010
Reputation Points: 82
Solved Threads: 36
Skill Endorsements: 0

Yes, in general I agree. In this particular case it's less important because that final return can never be executed.

JamesCherrill
... trying to help
Moderator
8,497 posts since Apr 2008
Reputation Points: 2,583
Solved Threads: 1,454
Skill Endorsements: 29

Yes, I agree to that too :).

hiddepolen
Posting Whiz in Training
297 posts since Oct 2010
Reputation Points: 82
Solved Threads: 36
Skill Endorsements: 0

thanks guys :D

xiangzhuang
Newbie Poster
6 posts since Oct 2011
Reputation Points: 10
Solved Threads: 0
Skill Endorsements: 0
Question Answered as of 1 Year Ago by JamesCherrill, hiddepolen and ilovejava

If you're happy with the answers to your question please mark this "solved" so everyone knows there's no more work needed. Thanks.

JamesCherrill
... trying to help
Moderator
8,497 posts since Apr 2008
Reputation Points: 2,583
Solved Threads: 1,454
Skill Endorsements: 29

This question has already been solved: Start a new discussion instead

Post: Markdown Syntax: Formatting Help
 
You
View similar articles that have also been tagged:
 
© 2013 DaniWeb® LLC
Page rendered in 0.1202 seconds using 2.72MB