当nextInt等于零时,如何终止程序?

时间:2014-11-26 21:53:28

标签: java arraylist

我填充了Arraylist<Integer>的回文数字。然后,我通过其get()方法从列表中检索用户指定的元素,并打印该数字。我正在尝试使用while循环来允许用户选择多个元素,直到他输入&#34; 0&#34;,而是在第一次选择后退出程序。我怎么能重复它?

public static void main(String[] args) {
    Scanner cin = new Scanner(System.in);
    ArrayList<Integer> str = new ArrayList<Integer>();

    for (int i = 1; i <= 1000; i++) {
        int a = i;
        int b = inverse(a);

        if (a == b) {
            str.add(a);
        }
    }

    int num = cin.nextInt();
    do {
        int getnum = str.get(num - 1);

        System.out.println(getnum);
    }
    while(num == 0);
}

public static int inverse(int x) {
    int inv = 0;

    while (x > 0) {
        inv = inv * 10 + x % 10;
        x = x / 10;
    }
    return inv;
}

1 个答案:

答案 0 :(得分:3)

你的循环测试应该是while它不等于零。此外,您需要再次获得num

// int num = cin.nextInt();
int num;
do{
    num = cin.nextInt();
    System.out.println("num is " + num);
    if (num > 0 && num <= str.size()) {
      System.out.println(str.get(num - 1));
    }
} while(num != 0);