実現したいこと
ここに実現したいことを箇条書きで書いてください。
- 通常のfor文を使用して記述しなければなりません。
- Mapの大きさ分for文を回すような記述に変更しなければなりません。
- beafMap1について通常のfor文のループカウンタ初期化の部分と継続条件をわかりやすくする必要があります。
- Mapの値を出力する処理を記述したい部分は、for文のループカウンタの継続条件がListのサイズ分にならないように記述する必要があります。
前提
出力結果は以下の結果となるようにしないといけません。
----- for文: 焼き肉の部位牛リスト -----
カルビ
ロース
サブトン
----- 拡張for文: 焼き肉の部位リスト -----
タン
ハラミ
発生している問題・エラーメッセージ
エラーメッセージは表示されていません。 ソースコードの内容を修正する必要があります。
該当のソースコード
Java
1package check; 2 3import java.util.ArrayList; 4import java.util.HashMap; 5import java.util.List; 6import java.util.Map; 7 8public class Check { 9 10 /* 定数(焼き肉の部位) */ 11 public static final String GYU_100_CALVI = "カルビ"; 12 public static final String GYU_101_TONGUE = "タン"; 13 public static final String GYU_102_LOIN = "ロース"; 14 public static final String GYU_103_HARAMI = "ハラミ"; 15 public static final String GYU_104_ZABUTON = "サブトン"; 16 17 public static void main(String[] args) { 18 19 int startNumber = 100; 20 21 List<String> beafList = new ArrayList<>(); 22 beafList.add(GYU_100_CALVI); 23 beafList.add(GYU_101_TONGUE); 24 beafList.add(GYU_102_LOIN); 25 beafList.add(GYU_103_HARAMI); 26 beafList.add(GYU_104_ZABUTON); 27 28 HashMap<Integer, String> beafMap1 = new HashMap<>(); 29 30 // 問:ループ文を利用して、「beafList」より「beafMap1」に値を設定しなさい。 31 // また、値を設定する際のキー値には「startNumber」を利用しなさい。 32 33 // 問: beafMap1 34 // ルール:【for文】を使用して値を設定しなさい。 35 // ここへ記述 36 for (int i = 0; i < beafList.size(); i++) { 37 beafMap1.put(startNumber+ i ,beafList.get(i)); 38 } 39 System.out.println("----- for文: 焼き肉の部位牛リスト -----"); 40 41 // 問: beafMap1 42 // ルール:【for文】を使用して値を出力しなさい。 43 for (int key :beafMap1.keySet()) { 44 if (key % 2 ==0 ) { 45 System.out.println(beafMap1.get(key)); 46 } 47 } 48 49 startNumber = 100; 50 51 HashMap<Integer, String> beafMap2 = new HashMap<>(); 52 53 for (String beaf : beafList) { 54 beafMap2.put(startNumber++, beaf); 55 } 56 57 System.out.println("----- 拡張for文: 焼き肉の部位リスト -----"); 58 59 for (Map.Entry<Integer , String> entry :beafMap2.entrySet()) { 60 if (entry.getKey() % 2 != 0) { 61 System.out.println(entry.getValue()); 62 } 63 } 64 } 65}
試したこと
for文の継続条件が「i < beafList.size();」とListの大きさ分for文を回すような記述になっているから、
他に考えられる方法を考えて、コンパイルを実行しました。
全て不適切でした。
以下のコードなどはダメみたいです。
for (int i = 0; i < beafList.size(); i++) {
beafMap1.put(startNumber + i, beafList.get(i));
}
System.out.println("----- for文: 焼き肉の部位牛リスト -----"); for (int i = 0; i < beafMap1.size(); i++) { int key = startNumber + i; if (i % 2 == 0) { // Even iteration (i = 0, 2, 4, ...) System.out.println(beafMap1.get(key)); } }
あと、これもダメみたいです。
for (int i = 0; i < beafList.size(); i++) {
beafMap1.put(startNumber + i, beafList.get(i));
}
System.out.println("----- for文: 焼き肉の部位牛リスト -----"); for (int key = startNumber; key < startNumber + beafList.size(); key++) { if (key % 2 == 0) { System.out.println(beafMap1.get(key)); } }
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
・Javaを学び始めて2週間の初心者です。
・ツールはeclipseを使用しています。
・独学中です。
・踏まえておくべき基礎知識や実務経験はありません。
・答えが分からず、つまずいています。
・何が間違っているのか、分からないまま困っており、手が止まっています。
・chatGPTやGeminiを使いながら、学習しています。
・困ったことを聞いたり、わからないことを聞ける人がいません。
