程序在错误的时间退出

时间:2015-08-26 02:06:13

标签: java loops

我已经让循环工作,并在输入值'999'时退出。

我不知道该怎么做,因为我的程序无法正常运行。

目前,在满足'num1''num2'和'num3'值后,循环退出。一旦输入值'999',我希望程序退出;不是在输入num1,2和3时。

这是我的代码:

import java.util.Scanner;

public class SumAverage {
    static Scanner keyboard = new Scanner(System.in);

    public static void main(String[] args) {
        System.out.printf("Please Enter the first number%n");
        float num1 = keyboard.nextFloat();

        System.out.printf("Please enter the second number%n");
        float num2 = keyboard.nextFloat();

        System.out.printf("Please enter the third number%n");
        float num3 = keyboard.nextFloat();

        float sum = (num1 + num2 + num3);               //calculates sum
        float average = (num1 + num2 + num3) / 3;     //calculates average

        for(int x = 0; x < 1; x++) {
            if (num1 == 999 || num2 == 999 || num3 == 999) {
                break;
            }
            System.out.printf("Sum: %.0f %nAverage: %.2f", sum, average);
        }
    }
}

3 个答案:

答案 0 :(得分:2)

如果您确实希望程序在输入999的值后立即结束,则可以将main()方法更改为:

public static void main(String[] args) {
    System.out.printf("Please Enter the first number%n");
    float num1 = keyboard.nextFloat();
    if (num1 == 999) {
        System.exit(0);
    }

    System.out.printf("Please enter the second number%n");
    float num2 = keyboard.nextFloat();
    if (num2 == 999) {
        System.exit(0);
    }

    System.out.printf("Please enter the third number%n");
    float num3 = keyboard.nextFloat();
    if (num3 == 999) {
        System.exit(0);
    }

    float sum = (num1 + num2 + num3);             // calculates sum
    float average = (num1 + num2 + num3) / 3;     // calculates average

    System.out.printf("Sum: %.0f %nAverage: %.2f", sum, average);
}

答案 1 :(得分:1)

如果我们查看当前编写代码的方式,由于没有附加任何条件,用户将始终需要输入3个值。

我建议使用带有条件的“System.exit”来测试用户输入的值是否为999.尝试从那里开始看看你能做些什么。

以下是关于“System.exit”的一些documentation,可帮助您更好地了解其工作原理。

答案 2 :(得分:0)

你的for循环只循环一次所以我认为你需要做的是改变代码的某些方面

public class Calculator{
    public static void main(String[] args){
        Scanner keyboard = new Scanner(System.in);
        float num1;
        float num2;
        float num3;
        while (true){ //This will run forever until we break the loop
            num1 = keyboard.nextFloat();
            if (num1 == 999){
                break;
            }
            num2 = keyboard.nextFloat ();
            if (num2 == 999){
                break;
            }
            num3 = keyboard.nextFloat ();
            if (num3 == 999){
                break;
            }
            System.out.println("The average is: " + (num1 +num2+num3)/3);
        }
    }
}