所以我有这个代码输入序列的一系列整数,但我想知道如何只输入没有值并按Enter键来终止while循环。我知道如果x整数值为0,我可以设置一个终止循环的条件。
public static void main(String[] args) {
SimpleReader in = new SimpleReader1L();
SimpleWriter out = new SimpleWriter1L();
Sequence<Integer> s = new Sequence1L<>();
Sequence<Integer> temp = s.newInstance();
System.out.println("Enter ");
int x = in.nextInteger();
int i = 0;
while (in.nextLine()) {
s.add(i, x);
x = in.nextInteger();
i++;
}
System.out.println(s);
}
答案 0 :(得分:1)
如果你想达到你所描述的目的,你需要改变你阅读输入的方式 - 什么都不输。
首先让while (in.nextLine())
从输入中获取额外的一行。所以你输入线的一半就丢失了。
我建议阅读像String line = in.nextLine()
这样的行。然后是:
if (line.equals("")) break;
int x = Integer.parseInt(line);
抱歉,最近没有做java给你整个循环。但我认为你应该明白这一点。
答案 1 :(得分:0)
break
可用于退出循环。所以你可以这样说:
if (x == 0) break;
之前的 i++;
答案 2 :(得分:0)
使用do while循环如下:
do {
input = int.nextInteger();
s.add(i, x);
i++;
} while (input != 0);
或在你的情况下使用while循环
while (in.nextLine()) {//assuming it checks if user has input
s.add(i, x);
x = in.nextInteger();//assuming this api gives integer value back if user indeed entered one
if (x == 0)
break;
i++;
}
答案 3 :(得分:0)
按Enter键,没有值。,
while (in.nextLine().length() > 0) {
s.add(i, x);
x = in.nextInteger();
i++;
}
循环终止。
答案 4 :(得分:0)
你也可以破解它,因为=
操作返回它设置的相同值:
SimpleReader in = new SimpleReader1L();
Sequence<Integer> s = new Sequence1L<>();
System.out.println("Enter ");
int i = 0;
String line = "";
while (!(line = ir.readLine()).trim().isEmpty()) {
x = Integer.parseInt(line);
s.add(i, x);
i++;
}
System.out.println(s);