为什么我的行在while循环中重复两次

时间:2014-01-03 22:43:33

标签: java

所以我昨天开始学习java,我试图让用户输入“5”并继续重复,直到他/她得到它。为了防止程序在输入字符串时崩溃,我创建了if / else语句。一切正常,但是当一个人先输入一个int然后输入一个字符串后,它会重复提示“输入数字5:”两次! 我做错了什么?

import java.util.Scanner;

public class chakad {
    public static void main(String[] args) {
        int number = 1;
        Scanner input = new Scanner(System.in);

        while (number != 5) {
            System.out.println("Enter the number 5: ");
            if (input.hasNextInt()) {
                number = input.nextInt();
            } else {
                System.out.println("woops");
                input.nextLine();
            }
        }

        System.out.println("YOU DID IT!");

        input.delimiter();

    }
}

2 个答案:

答案 0 :(得分:0)

似乎可以正常修改您的代码:

        if (input.hasNextInt()) {
            number = input.nextInt();
        } else if (input.hasNext()) {
            System.out.println("woops");
            input.next();
        }

最诚挚的问候,

米歇尔。

答案 1 :(得分:-1)

您可以使用此代码来读取一行:

 InputStreamReader fr = new InputStreamReader(System.in);
    BufferedReader br = new BufferedReader(fr);
    try {
           choice = br.readLine();
        } catch (Exception e) {
        e.printStackTrace();
        }

当然你必须导入库:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

try-catch语句只是为了确保不会出现问题。 希望有所帮助