繁体   English   中英

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

[英]Using an if statement with a 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);
    }
}

if语句移入循环。 现在, if语句在进入循环之前仅执行一次 (由于紧随该条件之后的; ,它什么也不做)。 您希望将其用于每个值。

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

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

作为另一种样式上的更改(这几乎是通用的惯例),您应该考虑将变量更改为小写名称。

您将if放在了while循环之前,并且它有一个空(=完全不执行任何操作)。 无论如何,条件也是错误的,因为Number > 0 || Number < 100 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);
}

您相当接近,但是if测试应该在循环中(并且您可能应该使用{}大括号)。 按照惯例,Java变量名称以小写字母开头,我更喜欢使用+=运算符添加到sum 另外,要检查您的范围,您在逻辑上需要使用and(而不是or)。 就像是,

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);
}

您的if在while循环之前。 将其放入循环中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM