如何在用户什么都不输入时继续提示用户

时间:2014-10-29 07:45:30

标签: java loops do-while

我这里有一个简单的do while循环。我唯一的问题是这个循环现在只接受数字。我需要它接受除空白输入之外的所有内容。

import java.util.Scanner;

public class Assignment6 {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        boolean notValid = true;
        int numberAsInt = 0;
        do {
            try {
               System.out.print("Enter a number to Convert > ");
               String number = scan.nextLine();
               numberAsInt = Integer.parseInt(number);
               notValid = false;
            }
            catch (Exception e) {
            }

        } while (notValid);
    }
}

4 个答案:

答案 0 :(得分:1)

您可以执行以下操作:

String number = readLine("Enter a number to Convert > ");
while(number.isEmpty()){
     number = readLine("Please enter a *non-blank* number > ");
}

答案 1 :(得分:1)

我对你的问题感到有点困惑,因为你正在解析你的代码中的结果,但我希望这就是你所要求的:

public class Assignment6 {
public static void main(String[]args){
   Scanner scan = new Scanner( System.in );
   boolean notValid = true;
   String  input;
   do{
           System.out.print( "Enter a number to Convert > "  );
           input = scan.nextLine( );
           if(!input.isEmpty())
             notValid = false;

    } while ( notValid );

   } 
}

答案 2 :(得分:0)

这里我们比较输入的值是否为空格而不是有效

 try {
                   System.out.print( "Enter a number to Convert > "  );
                   String number = scan.nextLine( );
                   if(number.equals(" "))
                   {
                     notValid = ture;
                     sysytem.out.println(" Please do not enter blank space");
                    }
                    else
                   {
                     numberAsInt = Integer.parseInt(number);
                     notValid = false;
                    }
            }

答案 3 :(得分:0)

在代码中使用此代码段:

if(number.trim().equals(""))
                       {
                         notValid = ture;
                         sysytem.out.println(" Please do not enter blank space");
                        }