使用带有while循环的if语句?

时间:2015-02-28 21:09:29

标签: java loops while-loop

我试图做这个问题:

设计一个程序,读入由-9999终止的数字列表,并输出输入的总和。

我正在修改该计划,以便只将1100之间的值相加,并且您可以看到我已尝试实施if语句。但是,一切都没有改变,这部分让我感到难过。我已经坚持了很久,代码如下:

import java.util.Scanner;

public class Summing {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int Number, Sum = 0;

        System.out.println("Enter a list of whole numbers, finished by -9999");
        Number = sc.nextInt();

        if (Number > 0 || Number < 100);
        while (Number != -9999) {
            Sum = Sum + Number;
            Number = sc.nextInt();
        }

        System.out.println("Sum is " + Sum);
    }
}

4 个答案:

答案 0 :(得分:4)

if语句移到循环内部。现在if语句仅在进入循环之前被执行一次(并且由于;紧跟在条件之后它没有做任何事情。您希望它用于每个值。

另请注意,我已将||更改为&&。否则,例如101将匹配,这不在0和100之间。最后,a = a + b总是可以更简洁地写为a += b

while (Number != -9999) {
    if (Number > 0 && Number < 100) {
        Sum += Number;
    }
    Number = sc.nextInt();
}

作为另一种风格变化(这是几乎普遍的惯例),您应该考虑将变量更改为小写名称。

答案 1 :(得分:1)

您将if放在while循环之前, 并且它有一个空(=什么都不做)。 无论如何,条件也是错误的,因为Number > 0 || Number < 100将匹配所有数字。您想将||更改为&&

这应该有效:

public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int Number, Sum = 0;

    System.out.println("Enter a list of whole numbers, finished by -9999");
    Number = sc.nextInt();

    while (Number != -9999) {
        if (1 < Number && Number < 100) {    
            Sum += Number;
        }
        Number = sc.nextInt();
    }

    System.out.println("Sum is " + Sum);
}

答案 2 :(得分:1)

你非常接近,但if测试应该在循环中(你应该使用{}括号)。按照惯例,Java变量名称以小写字母开头,我希望+=运算符添加到sum。此外,要检查您的范围,您在逻辑上需要和(而不是或)。像,

public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    System.out.println("Enter a list of whole numbers, finished by -9999");
    int number = sc.nextInt();
    int sum = 0;
    while (number != -9999) {
        if (number > 0 && number < 100) {
            sum += number;
        }
        number = sc.nextInt();
    }
    System.out.println("Sum is " + sum);
}

答案 3 :(得分:-1)

你的if是在while循环之前。把它放在循环中。