java - 如何根据第一个字符串有两个不同的响应?
问题描述
编辑以获得更多许可:
我认为代码应该做的是:“如果我在“扫描仪”上将 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));
}
解决方案
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));
}
推荐阅读
- nativescript - 如何在 nativescript-vue 上使用 axios
- windows - forfiles 批处理命令在为 /d 参数实施时无法识别 + 符号
- asp.net - ASP.NET Web 应用程序使用两个版本的 VB 编译器 - 这是怎么回事?
- jquery - 为什么 $.ajax 总是会出错回调?
- https - Airflow 中用于 HTTPS 的 HttpOperator 或 HttpHook
- python - 如何显示所有标签内容?
- c# - 无法在预制件内实例化预制件
- mysql - 将字符从数据库提取到另一个包含所有项目的数据库
- google-sheets - 在 Google Sheet 图表中可视化每月的输入和输出(流量)率
- django - 带有 ManyToManyField 的 Django Rest Framework 自定义权限类