我写了以下代码:
import java.util.Scanner;
public class Ex6_Page25 { //Nimrod - check exit on zero
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Enter number: ");
int number=input.nextInt();
int sum=0;
double avg=0;
int counter=0;
while(number!=0)
{
if(number>0)
{
counter++;
sum+=number;
System.out.print("Please enter another number: ");
}
else
{
System.out.print("number cannot be negative.\n"
+ "please enter another one: ");
}
number=input.nextInt();
}
avg=sum/counter;
System.out.println("The average of all numbers is: " + avg);
}
}
在我的代码的上半部分,就在while循环之前,可以用一种方式配置它,当用户键入0或-1时,程序根本不会进入while循环吗? (就像一个休息命令)
我尝试过休息;命令,但是我发现它只在循环中使用?
答案 0 :(得分:1)
当代码到达循环时,如果条件为false,则根本不会执行while
循环。 while(number > 0)
应确保在用户输入0或负数时不会执行。
(如评论中所述,请确保在循环后检查counter
变量,这样就不要尝试除以0。)
答案 1 :(得分:0)
正确设置while循环的条件:while(number> 0){...}并且while循环不会被运行