A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

package cn.itcast_02;

import java.util.Scanner;

public class StringTest_01 {
        public static void main(String[] args) {
                // 定义用户名和密码。已存在的。
                String username = "admin";
                String password = "admin";

                // 给三次机会,用循环改进,最好用for循环。
                for (int x = 0; x < 3; x++) {
                        // x=0,1,2
                        // 键盘录入用户名和密码。
                        Scanner sc = new Scanner(System.in);
                        System.out.println("请输入用户名:");
                        String name = sc.nextLine();
                        System.out.println("请输入密码:");
                        String pwd = sc.nextLine();

                        // 比较用户名和密码。
                        if (name.equals(username) && pwd.equals(password)) {
                                // 如果都相同,则登录成功
                                System.out.println("登录成功");
                                break;
                        } else {
                                // 如果有一个不同,则登录失败
                                // 2,1,0
                                // 如果是第0次,应该换一种提示
                                if ((2 - x) == 0) {
                                        System.out.println("帐号被锁定,请与班长联系");
                                } else {
                                        System.out.println("登录失败,你还有" + (2 - x) + "次机会");
                                }
                        }
                }
        }
}

虽然没有影响我运行但看到一个警告在那里总觉得不舒服,怎么才能不出现警告呢?
Scanner sc = new Scanner(System.in);  每次用都有警告!Resource leak: 'sc' is never closed!

5 个回复

倒序浏览
那个是io流没关闭的提示,但是scanner不用关闭
回复 使用道具 举报
龙sama 发表于 2015-12-15 21:10
那个是io流没关闭的提示,但是scanner不用关闭

难道没有关闭的办法吗?
回复 使用道具 举报
hyl 中级黑马 2015-12-15 22:02:58
板凳
有强迫症。
回复 使用道具 举报
Scanner 必须不关,因为你在方法中,sc属于局部变量,所以会报警告 你可以ctrl+1按提示找一种解决办法
回复 使用道具 举报
把nextline()改成next(),就应该好了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马