循环终止混乱

时间:2014-12-12 08:59:01

标签: java loops input while-loop

所以我有这个代码输入序列的一系列整数,但我想知道如何只输入没有值并按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);
}

5 个答案:

答案 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);