编写一个使用 while 循环的程序。在循环的每次迭代中,提示用户输入一个数字 - 正数、负数或零。 保留用户输入的数字的运行总计,并保留用户输入的计数。 每当用户输入"q"退出时,程序应停止。 用户完成后,打印总计和用户键入的条目数。
当我输入像 0 这样的数字时,我可以让这个程序工作,以终止循环。但是我不知道如何获得它,以便字符串阻止它。
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int count = 0;
int sum = 0;
int num;
System.out.println("Enter an integer, enter q to quit.");
num = in.nextInt();
while (num != 0) {
if (num > 0){
sum += num;
}
if (num < 0){
sum += num;
}
count++;
System.out.println("Enter an integer, enter q to quit.");
num = in.nextInt();
}
System.out.println("You entered " + count + " terms, and the sum is " + sum + ".");
}
您的策略是将输入作为字符串获取,检查它是否是"q",如果没有转换为数字和循环。
(由于这是您的项目,因此我只提供策略而不是代码)
这是粗略的策略:
String line;
line = [use your input method to get a line]
while (!line.trim().equalsIgnoreCase("q")) {
int value = Integer.parseInt(line);
[do your work]
line = [use your input method to get a line]
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int count = 0;
int sum = 0;
String num;
System.out.println("Enter an integer, enter q to quit.");
num = in.next();
while (!num.equals("q")) {
sum += Integer.parseInt(num);
count++;
System.out.println("Enter an integer, enter q to quit.");
num = in.next();
}
System.out.println("You entered " + count + " terms, and the sum is " + sum + ".");
}
减少代码数量,易于理解,并为您提供所需的内容。
还可以添加一个 if 语句来检查他们是否输入了另一个随机值(因此如果用户不听,程序不会崩溃)。像这样:
if(isLetter(num.charAt(0))
System.out.println("Not an int, try again");
会把它放在 while 循环之后,因此它已经检查了它是否是 q。
整数,但我们应该给出同样的例外。解决此问题的一种方法是输入一个字符串,这样如果用户第一次按的是 Q,则永远不会进入循环,如果不是 Q。我们假设用户是专家,并且只会在完成后输入数字和 Q。在此期间,我们使用num.parseInt(字符串)将字符串转换为数字
Integer num;
String input;
while(!input.equal(q)){
num=num.parseInt(input)
if(num<0)
sum+=1;
else
sumA+=1;
}