java Scanner

问题遇到的现象和发生背景

java中单独定义int=0;提示sc从未被关闭,但是将int i=0写在for循环里就没有警告了,这是为什么?(下面第一段就是有警告,第二段没有)

问题相关代码,请勿粘贴截图

第一段:

    Scanner sc = new Scanner(System.in);
    System.out.print("请输入五个数组元素:");
    int[] a = new int [5];
    int i=0;
    for(i=0;ifor(int v: a)
        System.out.print(v+" ");
    sc.close();

第二段:

    Scanner sc = new Scanner(System.in);
    System.out.print("请输入五个数组元素:");
    int[] a = new int [5];
    for(int i=0;ifor(int v: a)
        System.out.print(v+" ");
    sc.close();
运行结果及报错内容

提示sc从未被关闭

我的解答思路和尝试过的方法

如上

我想要达到的结果

如上

eclipse运行第一段代码也完全没问题,出现这个提示的原因是,eclipse判断你的sc.close()没有被执行。你看一下你在运行工程的时候是否已经有工程在运行了,或者把eclipse关闭后重启一下试试。还有就是检查一下变量,看看是否会导致for(i=0;i<a.length;i++)这里的for循环成为死循环。

img

你用什么编辑器,我这边试了没警告提示。

没啥道理啊,你重新开一个工程,用第二段代码编译看看。有时候警告在第一次编译给出后,后续再编译就不一定提示了,除非完全重新编译

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632