当前位置: 代码迷 >> Java相关 >> 不知道Scanner中nextLine的用法?
  详细解决方案

不知道Scanner中nextLine的用法?

热度:135   发布时间:2009-10-27 17:44:20.0
不知道Scanner中nextLine的用法?
import java.util.*;

public class HandleExceptionDemo {
  public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    boolean continueInput = true;

    do {
      try {
        System.out.print("Enter an integer: ");
        int number = scanner.nextInt();

        // Display the result
        System.out.println(
          "The number entered is " + number);

        continueInput = false;
      }
      catch (InputMismatchException ex) {
        System.out.println("Try again. (" +
          "Incorrect input: an integer is required)");
      scanner.nextLine(); //为什么去掉这个会是死循环?
      }
    } while (continueInput);
  }
}
搜索更多相关的解决方案: 用法  nextLine  Scanner  

----------------解决方案--------------------------------------------------------
分析:  
    条件1:        continueInput = false;
    条件2:        while (continueInput);   //请问它有可能为真吗?不是死循环是什么?
----------------解决方案--------------------------------------------------------
回复 2楼 gameohyes
能不能说明nextLine的作用?
----------------解决方案--------------------------------------------------------
也就是说,当输入的是字符时
continueInput = false;不会得到执行的.
  
----------------解决方案--------------------------------------------------------
nextLine--->能够接收空格后的内容
next------->与上反之
----------------解决方案--------------------------------------------------------
nextLine-->不管有没有接收到值都会继续
next---->没有接到,不会继续
----------------解决方案--------------------------------------------------------
回复 6楼 gameohyes
去掉那句nextLine,你试下程序,输入55sd,会是死循环。
----------------解决方案--------------------------------------------------------
55sd是字符串     不是整型
----------------解决方案--------------------------------------------------------
给你修改了2个地方。
Scanner scanner = new Scanner(System.in);
            boolean continueInput = true;

            do {
              try {
                System.out.println("Enter an integer: ");
                int number = Integer.parseInt(scanner.nextLine()); //第一个地方
                // Display the result
                System.out.println(
                  "The number entered is " + number);
                 

                continueInput = false;
              }
              catch (Exception ex) { //第二个地方  主要是第一处。理解好就行
                System.out.println("Try again. (" +
                  "Incorrect input: an integer is required)");
//              scanner.nextLine(); //为什么去掉这个会是死循环?
              }
            } while (continueInput);
----------------解决方案--------------------------------------------------------
  相关解决方案