为什么for循环得不到返回值?
输出结果是这样的,为什么gallonNeed的值没带回来?
Please input the length of the room>>
15
Please input the width of the room>>
20
Please input the height of the room>>
10
0
This room needs 0gallons
the whole payment is $0
package chapter3;
import java.util.Scanner;
public class PaintCalculator {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input=new Scanner(System.in);
System.out.println("Please input the length of the room>>");
int length=input.nextInt();
System.out.println("Please input the width of the room>>");
int width=input.nextInt();
System.out.println("Please input the height of the room>>");
int height=input.nextInt();
int area=wallArea(length, width, height);
int gallonNeed=gallonNeed(area);
displayGallonNeed(gallonNeed);
displayPayment(gallonNeed);
}
public static int wallArea(int length, int width, int height) {
int area=2*(length*height+width*height)+length*width;
return area;
}
public static int gallonNeed(int area) {
int gallonNeed=0;
for(int n=0;area>=(350*n)&&area<=(350*(n+1));n++) {
gallonNeed=n;
}
System.out.println(gallonNeed);
return gallonNeed;
}
public static void displayGallonNeed(int gallonNeed) {
System.out.println("This room needs "+gallonNeed+"gallons");
}
public static void displayPayment(int gallonNeed) {
int payment=gallonNeed*32;
System.out.println("the whole payment is $"+payment);
}
}
正在回答
同学你好,
1、在gallonNeed()方法的for循环中,当area >= (350 * n) && area <= (350 * (n + 1))为true时,才会执行for循环中的代码。
当运行程序,输入15,20,10时,area为1000,在gallonNeed()方法中,最初n为0,这时 (350 * n) 为0, (350 * (n + 1))为350, area >= (350 * n) && area <= (350 * (n + 1))就是1000>=0 && 1000<=350,即true&&false,结果为false 条件不成立,这时就会退出for循环。gallonNeed还是最初的值0。
建议同学改一下for循环中的判断条件。
2、如果问题没有解决,建议同学详细说明一下代码要做的事情,方便老师回答
祝学习愉快~
同学你好,gallonNeed()可以将返回值返回。同学的问题可能出现在gallonNeed()方法的for循环中。
例如输入长宽高为5,3,3。计算表面积为45。在gallonNeed()方法的for循环中,
当n=0时,area>=(350*n)&&area<=(350*(n+1))为45>0 && 45<350,条件成立,循环中,将n=0赋值给gallonNeed。
当n=1时,area>=(350*n)&&area<=(350*(n+1))为45>350 && 45<700,条件不成立,不再循环。
此时返回值gallonNeed的值为0。主方法中得到的gallonNeed也为0,其他方法的计算结果也是0。
祝:学习愉快~
- 参与学习 人
- 提交作业 9393 份
- 解答问题 16556 个
综合就业常年第一,编程排行常年霸榜,无需脱产即可学习,北上广深月薪过万 无论你是未就业的学生还是想转行的在职人员,不需要基础,只要你有梦想,想高薪
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星