為什么要用到continue 還有那個while(true)表示什么意思啊 不太懂
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Scanner;
import java.util.Set;
public class MapTest {
?//用來承裝學生類對象
public Map<String,Student>students;
//在構造器中初始化students屬性
public MapTest(){
this.students=new HashMap<String,Student>();
}
//測試添加:輸入學生ID判斷是否被占用
//若未被占用,則輸入姓名,創建學生對象,并且添加到students中
public void testPut(){
Scanner console=new Scanner(System.in);
int i=0;
while(i<3){
System.out.println("請輸入學生ID:");
String ID=console.next();
//判斷是ID是否內被占用
Student st=students.get(ID);
if(st==null){
//提示輸入學生姓名
System.out.println("請輸入學生姓名:");
String name=console.next();
//0創建學生對象
Student newStudent=new Student(ID,name);
students.put(ID, newStudent);
System.out.println("成功添加學生:"+students.get(ID).name);
i++;
}else{
System.out.println("該ID已經被占用");
?
}
}
}
/*
* *測試Map的keySet方法
*?
*/
public void testKeySet(){
//通過KeySet方法,但會Map中的所有“鍵”的set集合
Set<String> KeySet=students.keySet();
//取得students的容量
System.out.println("總用有:"+students.size()+"個學生");
//通過遍歷keySet,取得每一個鍵,在調用get方法的每個鍵對應的value值
for (String stuID:KeySet){
Student st=students.get(stuID);
if(st!=null){
System.out.println("學生:"+st.name);
}
}
}
//刪除Map中的映射
public void testRemove(){
Scanner console=new Scanner(System.in);
while(true){
System.out.println("請輸入要刪除的學生ID:");
String ID=console.next();
Student st=students.get(ID);
if(st==null){
System.out.println("輸入的學生ID不存在");
continue;
}
students.remove(ID);
System.out.println("成功刪除學生ID");
break;
}
}
//通過entrySet方法來遍歷Map
public void testEntrySet(){
Set<Entry<String ,Student>> EntrySet=students.entrySet();
for (Entry<String, Student> entry : EntrySet) {
System.out.println("取得鍵:"+entry.getKey());
System.out.println("取得鍵值:"+entry.getValue().name);
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
MapTest mt=new MapTest();
mt.testPut();
mt.testKeySet();
mt.testRemove();
mt.testEntrySet();
}
}
2017-05-31
while(true)是死循環, ?continue就是結束這次循環進行下次循環