亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

mapList.put(input,new Course(input,n1)); 為何無法賦值

int i = 0;
??while(i<3){
???System.out.println("請輸入ID");
???Integer input = Input.nextInt();?? //接受輸入內容? 導入過了
???Course m1 = mapList.get(Input);
???//System.out.println(m1);????????????? //這里m1為null
???if(m1==null){
????System.out.println("請輸入姓名");
????String n1 = Input.next();
????mapList.put(input,new Course(input,n1));
????//System.out.println(m1);???????? //這里m1依舊為null
??i++;
???}
???else{
????System.out.println("ID被占用");
????continue;
???}

程序可以執行。。。問題是:直到循環結束后m1才有值? 導致else沒法執行。。怎么破


正在回答

1 回答

1.請輸入ID 你為什么用 Integer 接受 為什么不用 String s = input.next(); ?你的問題 你沒有 給全部代碼 我也不太清晰 初步認為 是mapList.get()是接受String 類型 ,你傳進去的是integer類型?

2.還有下面mapList.put()無法賦值 這里 你想要創建 Course 實例 : Course cur = new Course(Input , n1);

在 把 ID 和 Course 放入 mapList里面 ?ID 為key , Course 為value 。 mapList.put(ID ,Course);

這是 兩層包裝 。Course 類 里面 有屬性 ID 和 name . ?Map中包含 key,value 為 ID ,Course. ??

第一個 我只是感覺 你 哪里 出現問題 ,不太準確 。 第二個 是map包含 東西 , 因為ID 的原因可能 有些不清晰 你可以去紙上面 畫下圖像 。誰包含誰 就 可以了?

0 回復 有任何疑惑可以回復我~
#1

Goldberg 提問者

這個程序可以運行,并得出結果。只是不能判斷是否重名 因為在循環中mapList.put賦值后 m1的值并沒有立刻改變 而是等循環結束后才會執行賦值 這個要怎么解決???
2016-02-22 回復 有任何疑惑可以回復我~
#2

Goldberg 提問者 回復 Goldberg 提問者

在循環中mapList.put語句賦值后,m1的值并沒有立刻改變,所以每次執行判斷時 m1==null 導致永遠不會執行else語句。等while語句結束,m1!=null
2016-02-22 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

mapList.put(input,new Course(input,n1)); 為何無法賦值

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號