java - 我不确定为什么代码不会输出任何语句。当我在我的 IDE 中运行它时,没有任何输出
问题描述
package Fall21;
import java.util.Scanner;
public class BalloonRideWeight {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int personWeight = sc.nextInt();
int totalWeight = 0;
for (int i=0; i<n; ++i) {
totalWeight +=personWeight;
personWeight =sc.nextInt();
}
if (totalWeight >500)
System.out.println("Everyone too fat.");
else
System.out.println("Just right.");
sc.close();
}
}
这会是运行时问题吗???我只是在学习基础知识,因此不需要任何带有数组和更复杂代码级别的答案。
解决方案
它可能不输出任何东西,因为你正在使用Scanner
which 期望输入。当我运行您的程序并输入以下输入时
1
1
1
我得到输出
Just right.
这些调用中的每一个
sc.nextInt();
期望您输入存储在声明变量(语句左侧)中的输入。
因此,对于我的前两个输入,值
n = 1, personWeight = 1
然后循环迭代 1 次,其中包含另一个扫描仪调用设置personWeight
. 我再次设置为1
。
只有这样它才能达到将某些内容打印到控制台的 if 条件。有关更多信息,请参见:https ://www.w3schools.com/java/java_user_input.asp
编辑:
如果你想从一行解析多个整数,你可以这样做:
String[] arguments = scanner.nextLine().split(" ");
int[] ints = new int[arguments.length];
for (int i = 0; i < ints.length; i++) {
ints[i] = Integer.parseInt(arguments[i]);
}
或者更高级的版本:
int[] ints = Arrays
.stream(scanner.nextLine().split(""))
.mapToInt(Integer::parseInt)
.toArray();
推荐阅读
- python - ctypes vs _ctypes - 为什么后者存在?
- python - Why python super() not working without parameters in ABCMETA class?
- python-3.x - Tkinter tag_lower“标签搜索表达式中的布尔运算符无效”
- android - 一旦我尝试主要登录这一行,应用程序就会关闭 if (login.getType().equals("Admin") && login.getType() != null)
- r - 这个 R 函数如何返回值?
- java - 如何修复:“无法为 jboss-interceptors-api_1.2 导出模块描述符”
- python - 从 matplotlib 图中返回一个 numpy 数组太慢了,我该如何加快速度?
- python - 具有“动态常量”的 Python 工厂函数
- python - 即使列中的单个值不是 NaN,如何过滤 Coulmns
- java - Log4j 2 记录输出消息,带有指向文件号的链接