标题:for (int i = 1; i <= x; i++)这个循环中为什么第一次不执行String s = sc. ...
只看楼主
niuzhenkang
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2018-3-14
结帖率:0
已结贴  问题点数:20 回复次数:3 
for (int i = 1; i <= x; i++)这个循环中为什么第一次不执行String s = sc.nextLine();
public class test2 {
    public static void main(String[] args) throws IOException {
        // 创建ArrayList集合对象
        ArrayList<String> array = new ArrayList<String>();
        // 创建集合元素
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入集合中元素个数");
        int x = sc.nextInt();
        for (int i = 1; i <= x; i++) {
            System.out.println("请输入集合中第" + i + "个元素");
            String s = sc.nextLine();
            // 添加到集合中
            array.add(s);
        }
        // 封装目的地
        BufferedWriter fw = new BufferedWriter(new FileWriter("test2.txt") );
        for (String s1 : array) {
            fw.write(s1+"\r\n");
        }
        // 关闭资源
        fw.close();
    }
运行结果:
请输入集合中元素个数
3
请输入集合中第1个元素
请输入集合中第2个元素
nihao
请输入集合中第3个元素
哈哈
搜索更多相关主题的帖子: int String 集合 元素 输入 
2018-03-14 10:19
疯狂的小a
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:39
帖 子:423
专家分:1871
注 册:2018-2-6
得分:10 
回复 楼主 niuzhenkang
因为你第一次输入的时候,按了回车,导致,回车被识别成了你第二次要输入的内容,所以第二次就不用输入了,显示了回车,但是你看不见,所以产生了没有输入的错觉,事实上你已经输入了!

假如人生没有梦想,和咸鱼有什么区别!
2018-03-14 12:14
疯狂的小a
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:39
帖 子:423
专家分:1871
注 册:2018-2-6
得分:0 
回复 楼主 niuzhenkang
解决办法就是,nextint和nextline方法不要用同一个对象就是sc调用。

假如人生没有梦想,和咸鱼有什么区别!
2018-03-14 12:18
桃花岛主丶
Rank: 2
等 级:论坛游民
威 望:3
帖 子:27
专家分:58
注 册:2018-3-20
得分:10 
版主厉害,前段时间我们老师给我们讲过这个,他说一次他们开发出了这个bug,所有同事都在找这个问题,找了两天.
2018-03-20 01:17



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-485254-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013928 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved