如何在Java中从控制台读取多个整数?

时间:2015-11-05 08:53:28

标签: java

我需要用户输入一些数字,程序会将它们相加,直到最后一个小于前一个。像这样:

if ( strcmp( phrases[p][i], word ) == 0 )
    // the word matches 

到目前为止,我只将两个数字相加,但与其余数字不一致。

Next:1
Next:3
Next:6
Next:1
Result:10

8 个答案:

答案 0 :(得分:2)

在此行中,您将继续覆盖之前的结果:

result = number + number2;

尝试将其更改为:

result += number;

在while循环之前添加以下作业:

result = number2;

答案 1 :(得分:1)

工作代码:

public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    int number, number2, result;
    number2 = scan.nextInt();
    result = number2;
    while ((number=scan.nextInt())>number2){
        result += number;
        number2=number;
    }
    System.out.println(result);
    scan.close();
}

答案 2 :(得分:1)

您可以使用+=来简化操作。另外,给你的变量更好的名字。

//store last input, current input, and the sum
int last = 0;
int result = 0;
int input = 0;
//note that if you enter invalid input, this will go into an infinite loop
while ((input = scan.nextInt()) > last){
    result += input; //directly adds the input to the sum
    last = input;
}
System.out.println("Sum: " + result);

为了防止无限循环,您应该使用try - catch块来检测无效输入,使用scan.next()来清除无效数据,如下所示:

while (input > last){
    try{
        input = scan.nextInt();
        result += input;
        last = input;
    }catch (InputMismatchException e){
        System.err.println("Invalid input"); //you could also use .out
        scan.next(); //eliminate invalid data
    }
}

答案 3 :(得分:0)

您可以使用result += number。这会将number添加到result

请注意,number = scan.nextInt()是条件表达式中的赋值。它们并不符合每个人的口味。事实上,你的代码中有一个错误(第一个数字不包括在总和中),所以你无论如何都需要重构:用int result = number2 = scan.nextInt();初始化是一种方式。

答案 4 :(得分:0)

怎么样:

number2 = 0;
number = scan.nextInt();
while (number > number2) {
    result += number;
    number2 = number;
    number = scan.nextInt();
}

答案 5 :(得分:0)

%px cd /path/to/dir/containing/gillespie.so

答案 6 :(得分:0)

每次都会删除结果,试试这个。

onclick="window.location.reload();"

答案 7 :(得分:0)

也许......

System.out.println( "Enter a number: " )
number = scan.nextInt();
result = number;
do {
    System.out.println( "Enter a number: " )
    number2 = scan.nextInt();
    result += number2;
    number = number2;
} while ( number2 >= number );