javaweb疑难杂症1

javaweb疑难杂症

学长的任务要求

javaweb小测 我的代码

问题1:

//出错
System.out.println("输入要修改的课程id");
int suid = sc.nextInt();
System.out.println("输入课程新名称");
String new_name = sc.nextLine();

7月25日

System.out.println("输入要修改的课程id");
int suid = sc.nextInt();
sc.nextLine();//用此方法抵消(吞)掉回车符;
System.out.println("输入课程新名称");
String new_name = sc.nextLine();

注意:在使用Scanner类获取用户输入时,sc.nextInt()方法会将用户输入的整数值读取,但留下了一个回车符(newline)。因此,当接下来使用sc.nextLine()方法获取课程新名称时,会直接读取到这个回车符,而不是用户输入的实际内容。

代码重复的解决1

public class SaTPassword {
private static final JdbcTemplate template = new JdbcTemplate(jdbcUtils.getDataSource());

public static void newpassword(String username, String password, String profession) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入当前密码");
String oldpassword = sc.nextLine();
int flag = 0;

while (!oldpassword.equals(password) && flag < 3) {
flag++;
System.out.println("密码错误,还剩" + (3 - flag) + "次尝试");
if (flag < 3) {
System.out.println("请重新输入密码:");
oldpassword = sc.nextLine();
}
}

if (oldpassword.equals(password)) {
System.out.println("请输入新的密码");
String new_password = sc.nextLine();
System.out.println("请再次输入新的密码");
String new_password2 = sc.nextLine();

if (new_password.equals(new_password2)) {
String sql = "update " + profession + " set password = ? where username = ?";
template.update(sql, new_password, username);
System.out.println("修改成功,请返回上一界面重新登录");

if (profession.equals("student")) {
studentLogin();
} else if (profession.equals("teacher")) {
teacherLogin();
}
} else {
System.out.println("您前后输入的密码不一致,不可修改");
if (profession.equals("student")) {
studentmenu(username, password);
} else if (profession.equals("teacher")) {
teachermenu(username, password);
}
}
} else {
System.out.println("失败次数过多,返回上一界面");
if (profession.equals("student")) {
studentLogin();
} else if (profession.equals("teacher")) {
teacherLogin();
}
}
}
}