如何根据第一个字符串有两个不同的响应?

时间:2018-12-30 13:21:31

标签: java

编辑可获得更多权限:

我认为代码应该做的是:“如果我在“扫描器”上将0放在第一位,则应该弹出“您不能数数”的文本。

但是,如果我先在扫描仪中输入了其他一些数字,它应该会“中断”;程序并仅打印底部的计算。不是“你不能数那些”。

我似乎只有两者都可以工作,而不能同时工作。

我尝试过移动if语句,并移动System.out.println

public static void main(String[] args) {
    Scanner lukija = new Scanner(System.in);

    int yksi = 0;
    int numero = 0;

    while (true) {
        int luku = Integer.valueOf(lukija.nextLine());

        if (luku == 0) {
            System.out.println("you cant count the ones");
            break;
        }

        if (luku == 1) {
            yksi = yksi + 1;
        } else if (luku != 0) { 
            numero = numero + 1;
        }
    }
    System.out.println(1.0 * yksi / (numero + yksi));
} 

1 个答案:

答案 0 :(得分:0)

我假设您在第一次键入break时不希望0,而只显示消息“您不能数那个”。然后,您可以使用这样的标记并将中断放置在else部分中,

public static void main(String[] args) {
    Scanner lukija = new Scanner(System.in);

    int yksi = 0;
    int numero = 0;
    boolean flag = true;

    while (true) {
        int luku = Integer.valueOf(lukija.nextLine());

        if (luku == 0) {
            if (flag) {
                System.out.println("you cant count the ones");
            } else {
                break;
            }
        }

        flag = false;

        if (luku == 1) {
            yksi = yksi + 1;
        } else if (luku != 0) {
            numero = numero + 1;
        }
    }
    System.out.println(1.0 * yksi / (numero + yksi));
}