编辑可获得更多权限:
我认为代码应该做的是:“如果我在“扫描器”上将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));
}
答案 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));
}