UW CSE logo uw

CSE 142: Computer Programming I, Autumn 2008

arrow CSE Home arrow About Us arrow Search arrow Contact Info

Homework 4 (Grades) FAQ

Q: How do I use Scanner? How do I do returns?

A: Look at the examples in the textbook. For examples of Scanner, look at the "case study" examples from Chapters 3 and (especially) 4. The case study in Ch. 4 is also good for understanding returns, with its getBMI and bmiFor methods (and examining how they are called and used from main).

Also look at the lecture examples from this past week.

Q: I'm returning a variable, but I get a "cannot find symbol" error in main when I try to use the variable. Why can't main see my variable?

A: Just returning a variable from your method doesn't mean main now can refer to that variable. The variable's value is returned, not its name. The main method must store the result into a variable and then examine that variable.

Q: Why does my program always print 0 as the score?

A: Maybe you are mistakenly using integer arithmetic. Remember that in Java, 40 / 50 is 0.

Q: How do I return two things from a method?

A: You can't! You need to organize your program so you only need to return one thing from each method.

Q: But I have a method that reads / computes two important values. How do I get those values over to the other parts of my program?

A: There are several ways. One would be to have your method call the other method, passing the two important values as parameters, rather than trying to return the two values. Another possibility is that maybe you don't need to return both the values; maybe one of them is more important than the other, so you can just return the more important one. Third, if the method is short, you might consider just putting that code in main and then having main pass the two important values to the rest of your program.

Q: How do I round a number to a certain number of decimal places?

A: See the third page of the homework write-up. There is a method called System.out.printf that you'll find useful.

Q: How do I read two values from the Scanner on the same line?

A: Just prompt once and then call nextInt twice in a row on the Scanner. See the third page of the homework write-up.

Q: Can my main method contain println statements? Can it contain an if statement? How many lines long can it be? ...

A: The training wheels are coming off, so you can now use println statements and take user input inside the main method if necessary. However, main should still be somewhat short and should not contain too large a share of your overall code. The main method should represent a reasonable summary of the overall program's execution. In other words, you can stretch out a little now, but remember that main should still be concise and summarize the program's execution.

It's a little scary to be given extra feedom but not know where the boundaries are, which is fine, because the boundaries are a little fuzzy anyway. Take faith in the specs and guidelines given to you: part of programming is learning to make design decisions based on those guidelines. Lastly, do not ask questions like "Can my method have 4 println statements and 2 if statements?". The above should be all you need to know.