编写一个使用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 + ".");
}
答案 0 :(得分:1)
您的策略是将输入作为字符串,检查它是否为“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]
}
答案 1 :(得分:0)
java期望一个整数,但我们应该给出相同的异常。解决这个问题的一种方法是输入一个字符串,这样如果用户第一次按下的是Q,则永远不会进入循环,如果不是Q.我们假设用户是专家,只会输入数字和Q完了。在这段时间内,我们使用num.parseInt(String)
将String转换为数字Integer num;
String input;
while(!input.equal(q)){
num=num.parseInt(input)
if(num<0)
sum+=1;
else
sumA+=1;
}
答案 2 :(得分:0)
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。