首页 > 解决方案 > 如何根据第一个字符串有两个不同的响应?

问题描述

编辑以获得更多许可:

我认为代码应该做的是:“如果我在“扫描仪”上将 0 作为第一个,则应该弹出“你不能数那些”的文本。

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

我似乎使两者中的一部分起作用,但不是两者兼而有之。

我试过移动 if 句,移动System.out.println's 。

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

标签: java

解决方案


break我假设您在第一次输入时不想这样做,0并且只显示“您数不清”的消息。然后你可以使用这样的标志并将 break 放在 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));
}

推荐阅读