Homework 4 (Budgeter) 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 itsgetBMI
andbmiFor
methods (and examining how they are called and used frommain
).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'tmain
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. Themain
method must store the result into a variable and then examine that variable. Instead of:myMethodThatReturns(param1, param2);
You may need to say something like:
int result = myMethodThatReturns(param1, param2);
-
Q: Why does my program always print 0 as the daily average?
-
A: Maybe you are mistakenly using integer arithmetic. Remember that in Java,
40 / 50
is0
. -
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. Beware that this could lead to "chaining" of methods if you consider too many values as being "important". 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 2nd page of the homework write-up. You may use the custom round method we used in several lecture examples. There is also a method called
System.out.printf
that you might find useful. -
Q: Can my
main
method containprintln
statements? Can it contain anif
statement? How many lines long can it be? ... -
A:
main
should be short, but it should summarize the overall program and should not contain too large a share of your overall code. Themain
method should represent a reasonable summary of the overall program's execution.