黑马程序员技术交流社区

标题: 关于java多组数据输入问题 [打印本页]

作者: 徐启坤    时间: 2013-5-10 13:13
标题: 关于java多组数据输入问题
本帖最后由 徐启坤 于 2013-5-10 16:34 编辑

在Java中有没有类似像C语言中while(scanf("%d",&a)!=EOF)这样的用法,就是可以连续输入??

作者: 徐启坤    时间: 2013-5-10 13:23
尹桥印 发表于 2013-5-10 13:14
你java中也可以写那样的一上循环呐,把循环套在外面,要读取用户输入语句放在循环里面也应该行吧?个人观点 ...
  1. public class test {
  2.         public static void main(String[] args) {
  3.                 int a;
  4.                 Scanner in=new Scanner(System.in);
  5.                 while(a=in.nextInt()){
  6.                         System.out.println(a);
  7.                 }

  8.         }

  9. }
复制代码
你是说这样吗?我试了一下编译会报错!!
作者: 白磊    时间: 2013-5-10 13:27
其实c我是一点也看不懂的,在java重要连续输入的话,可以这样:
while(true){
                        Scanner sc=new Scanner(System.in);
                        String  str=sc.next();
                        System.out.println(str);
                        }
写在一个类里:
public class A {
        public static void main(String[] args) {
                while(true){
                        Scanner sc=new Scanner(System.in);
                        String  str=sc.next();
                        System.out.println(str);
                        }
        }       
}
作者: 徐启坤    时间: 2013-5-10 13:41
白磊 发表于 2013-5-10 13:27
其实c我是一点也看不懂的,在java重要连续输入的话,可以这样:
while(true){
                        Scanner sc=new Scanner(S ...

这样如果不手动结束循环的话,就不能再在while循环后面写代码了,否则会报错
作者: 殇_心。    时间: 2013-5-10 13:45
有的。
举例如下:
Scanner in = new Scanner(System.in);
while( in.hasNext() )
{
      执行代码;         
}
作者: 白磊    时间: 2013-5-10 13:58
徐启坤 发表于 2013-5-10 13:41
这样如果不手动结束循环的话,就不能再在while循环后面写代码了,否则会报错 ...

那你可以这样写,这样就可以继续后面的操作了
public class A {
        public static void main(String[] args) {
                while (true) {
                        Scanner sc = new Scanner(System.in);
                        String str = sc.next();
                        System.out.println(str);
                        if (str.equals("886")) {
                                break;
                        }
                }
                System.out.println("fad");
        }
}
作者: 殇_心。    时间: 2013-5-10 14:00
尹桥印 发表于 2013-5-10 13:57
这个无限循环下去了?只能在循环里面加判断了?还是怎么的一个情况

没有。这样的话,编译器是可以帮你结束的。
当读到没有数据的时候,while语句就结束了。
作者: 白磊    时间: 2013-5-10 14:16
尹桥印 发表于 2013-5-10 13:59
这句Scanner sc = new Scanner(System.in);放在循环里面?

好吧   这个是应该放在外面:L
作者: 徐启坤    时间: 2013-5-10 16:04
尹桥印 发表于 2013-5-10 13:57
这个无限循环下去了?只能在循环里面加判断了?还是怎么的一个情况

我试了,可以用Ctrl+z结束输入




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