在java中是否有等效的while(scanf()== 1)?

时间:2015-03-26 10:47:49

标签: java

我一直在c和c ++中使用以下代码进行循环,直到用户输入正确的值,直到程序出来:

while((scanf("%d",&num)==1)//same way in for loop
{
  //some code
}

我可以使用相同的方式接受和循环程序,直到我继续输入让我们说一个整数浮动或一个字符或一个特殊字符打破它。

2 个答案:

答案 0 :(得分:1)

使用:

Scanner sc = new Scanner(System.in); // OR replace System.in with file to read
while(sc.hasNext()){
   //code here
   int x = sc.nextInt();
   //...
}

对于特定的预期输入类型,hasNext()有不同的变体:hasNextFloat()hasNextInt() ..  next()方法也是如此,因此您可以找到nextInt()nextFloat()甚至nextLine()

您可以访问Java doc了解详情。

答案 1 :(得分:0)

正如评论中所建议的那样,您可以使用Scanner类。 请注意,当nextLine()不是int时,您需要使用public static void main(String[] args) { try (Scanner in = new Scanner(System.in)) { System.out.println("Enter an int: "); while (!in.hasNextInt()) { System.out.println("That's not an int! try again..."); in.nextLine(); } int myInt = in.nextInt(); System.out.println("You entered "+myInt); } } 读取缓冲区。

{{1}}