黑马程序员技术交流社区

标题: 请问为什么会报错呀.... [打印本页]

作者: 月影千华    时间: 2015-10-24 00:02
标题: 请问为什么会报错呀....
  1. import java.util.Scanner;

  2. public class Test3 {
  3.     public static void main(String[] args) {
  4.         while (true) {
  5.             System.out.println("input number:");
  6.             Scanner sc = new Scanner(System.in);
  7.             int x = sc.nextInt();
  8.             sc.close();
  9.             System.out.println(x);
  10.         }
  11.     }
  12. }
复制代码
请问为什么会报NoSuchElementException的错误,把 sc.close()注释掉就不会报错了,但是我想不通的是,每次循环,不是重新开打流了吗,为什么会报错?



作者: 1158147908    时间: 2015-12-14 00:16
import java.util.Scanner;

public class Test2 {
        public static void main(String[] args) {
                Scanner sc = new Scanner(System.in);
                int x = 0;
                while (true) {
                        System.out.println("input number:");
                        x = sc.nextInt();
                        System.out.println(x);
                }
        }
}
把close那句去掉就行了,然后可以把变量的定义放在while外面,减少内存消耗~虽然耗得不多




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2