问答详情
源自:5-4 学生选课---修改 Map 中的学生

while死循环能改成for循环么

public void testModify() {

//提示输入要修改的学生Id

System.out.println("请输入要修改的学生Id");

Scanner input =new Scanner(System.in );

while(true) {

//取得从键盘上输入的学生Id

String stuId=input.next();

//从students中查找该学生Id对象的学生对象

Student student=students.get(stuId);

if(student==null) {

System.out.println("该Id不存在!请重新输入!");

}else {

//提示当前对应的学生对象的姓名

System.out.println("当前该学生的Id,所对应的学生为:"+student.name);

//提示输入新的学生姓名,来修改已有的映射

System.out.println("请输入新的学生姓名:");

String name =input.next();

Student newStudent=new Student(stuId,name);

students.put(stuId, newStudent);

System.out.println("修改成功");

break;


}

}

}



提问者:孤存dm1t 2018-08-14 19:25

个回答

  • 曾嗨森
    2018-08-21 09:16:23

    emm楼上不要误人子弟,任何循环都可以改为for循环。。。。for(;ture;)即可

  • songqi12so
    2018-08-17 11:20:19

    不能,因为不知道你会输错多少次ID,所以只能使用while达成一个无限的循环

    for需要判断次数,不符合需求,并非最优选项

  • NothingAJ
    2018-08-15 17:41:16

    楼上在说什么?完全可以改为 for(;;) ,因为两种条件都有跳出条件,这种情况下和 while(true) 完全等价。

  • code_walker
    2018-08-15 16:28:25

    for循环是确定循环。理解一下

  • 姜姜云
    2018-08-14 21:01:19

    while的作用就是在输入的id在集合中没有找到的时候,可以再次输入id,如果改成for的话,就有个上限,如果有最多输入n次id的条件的话,那么这是可以用for也是一种办法。