提问人:teambubbel 提问时间:10/2/2022 更新时间:10/2/2022 访问量:130
尝试在 while 循环中保存来自同一扫描仪的多个输入
trying to save multiple inputs from the same scanner in a while loop
问:
我正在尝试在while循环中从同一扫描仪获取多个整数值。我需要存储所有值,以便以后可以使用它们。但是,我只能在 while 循环结束时从扫描仪中获取最后一个值。
int antalHeltal = Integer.parseInt(Antal);
int noll = 1;
int heltal = 0;
String tal1 = "";
Scanner tal = new Scanner(System.in);
while (noll <= antalHeltal) {
noll += 1;
heltal += 1;
System.out.print("ange heltal " + heltal + ": ");
tal1 = tal.next();
try {
Integer.parseInt(tal1);
} catch (NumberFormatException e) {
System.out.println("Ogiltigt värde");
noll -= 1;
heltal -=1;
}
我的变量是用瑞典语写的,所以很抱歉,但我希望有人能帮我解决这个问题。将不胜感激。
答:
0赞
DevilsHnd - 退した
10/2/2022
#1
使用列表,因为它可以动态增长:
Scanner tal = new Scanner(System.in);
List<Integer> list = new ArrayList<>(); // *** Add this
while (noll <= antalHeltal) {
noll += 1;
heltal += 1;
System.out.print("ange heltal " + heltal + ": ");
tal1 = tal.next();
try {
// **********************************
int num = Integer.parseInt(tal1);
list.add(num);
// **********************************
} catch (NumberFormatException e) {
System.out.println("Ogiltigt värde");
noll -= 1;
heltal -=1;
}
要稍后访问列表,请执行以下操作:
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
或。。。。
for (int val : list} {
System.out.println(val);
}
评论
0赞
Arvind Kumar Avinash
10/3/2022
改进你对几件事的回答:(1)你可以用(也可以教初学者)代替和代替(2)当你可以简单地使用时,是没有意义的。但是,以下内容确实有意义:.noll++
noll += 1
noll--
noll -= 1
tal1 = tal.next(); int num = Integer.parseInt(tal1);
int num = tal.nextInt();
tal1 = tal.nextLine(); int num = Integer.parseInt(tal1);
0赞
teambubbel
10/3/2022
谢谢你们俩的评论。没想到这么快就得到了这么好的帮助。非常感谢
评论
while(1 <= 0)
!??(永远不会进入此循环;