質問するログイン新規登録
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

2回答

2050閲覧

java初心者だけどドツボにはまってしまったので助けてほしいです

abcdefghij

総合スコア1

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

1クリップ

投稿2024/01/02 12:30

編集2024/01/02 13:47

0

1

実現したいこと

下記のコードの問⓷にて

拡張ではなく通常のfor文でstartNumbeを使って

----- for文: 焼き肉の部位牛リスト -----
カルビ
ロース
サブトン

と出力したいのでアドバイスなどいただけると助かります。

前提

EclipseでJavaSE-21にてコードを記述しており、startNumberとfor文のループ式をうまく使って記述したい

発生している問題・エラーメッセージ

出力時にstart Numberを活かしたfor文を書きたいけどうまいやり方がわからない

該当のソースコード

java

1 2import java.util.ArrayList; 3import java.util.HashMap; 4import java.util.List; 5 6public class Check { 7 8 /* 定数(焼き肉の部位) */ 9 public static final String GYU_100_CALVI = "カルビ"; 10 public static final String GYU_101_TONGUE = "タン"; 11 public static final String GYU_102_LOIN = "ロース"; 12 public static final String GYU_103_HARAMI = "ハラミ"; 13 public static final String GYU_104_ZABUTON = "サブトン"; 14 public static void main(String[] args) { 15 16 // ハッシュマップのキーの基準値 17 int startNumber = 100; 18 19 // 問① 20 // ブランド牛格納用リスト「 `beafList` 」のインスタンスを生成し、 21 // 上記「焼き肉の部位リスト」の表と同じ順番となるよう、適当な値を追加しなさい。 22 // 尚、追加する値は定数より適当なものを参照すること。 23 // ここへ記述 24 List<String> beafList = new ArrayList<String>(); 25 beafList.add(GYU_100_CALVI); 26 beafList.add(GYU_101_TONGUE); 27 beafList.add(GYU_102_LOIN); 28 beafList.add(GYU_103_HARAMI); 29 beafList.add(GYU_104_ZABUTON); 30 31 // キーと肉のハッシュマップ格納用変数 32 HashMap<Integer, String> beafMap1 = new HashMap<>(); 33 34 // 問② ループ文を利用して、問①で実装した「beafList」に値を設定しなさい。 35 // また、値を設定する際のキー値には「startNumber」を利用しなさい。 36 37 // 問③ 問②で「beafMap1」へ格納した値を出力しなさい。 38 39 // 問②: beafMap1 40 // ルール:【for文】を使用して値を設定すること 41 // ここへ記述 42 for (int i = 0; i < beafList.size(); i++) { 43 beafMap1.put(startNumber + i, beafList.get(i)); 44 } 45 46 System.out.println("----- for文: 焼き肉の部位牛リスト -----"); 47 48 // 問③: beafMap1 49 // ルール:【for文】を使用して値を出力すること 50 // ここへ記述 51 for (int i = startNumber; i < startNumber + beafList.size() ; i += 2) { 52 System.out.println(beafMap1.get(i)); 53 }

###試したこと
teratailやGoogle等で検索した
ソースコードを自分なりに変更した

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

meg_

2024/01/02 12:33

> java初心者だけどドツボにはまってしまったので助けてほしいです 現状どのような出力になっているのでしょうか?
abcdefghij

2024/01/02 12:37

出力自体は望んだものが出たのですが、これだと何回ループさせたいのかわからないしstart Numberを入れるのもおかしいといわれてました。
hiroki-o

2024/01/02 12:56

まず、startNumberを使うのか使わないのか、はっきりさせてほしいです。
abcdefghij

2024/01/02 12:59

申し訳ありません。 starNumberを使いたいです 質問文を修正します。
guest

回答2

0

ベストアンサー

問②と同じようにやればいいと思うんですが。
(ループカウンタからstartNumberを除き、キーの計算時にstartNumberを加える形にし、iはループカウンタに徹させる)

Java

1 for (int i = 0; i < beafList.size() ; i += 2) { 2 System.out.println(beafMap1.get(i + startNumber)); 3 }

投稿2024/01/02 15:05

swordone

総合スコア20675

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hiroki-o

2024/01/02 15:11

あー、こちらのほうが正解でしょうね。でも、何で1個とばしなのか、いまだに謎です...
abcdefghij

2024/01/02 15:39

本当にありがとうございます。 このコードを参考にさせていただきOKをもらえました。 ちなみにですが、これはもう一つbeafMap2というのがありそちらでは奇数、こちらでは偶数を求めているようなので1個飛ばしだの迷走していました。 最後にもう一度本当にありがとうございました。
guest

0

Windows 11、OpenJDK 21.0.1で確認しました。

for (String val : beafMap1.values()) { System.out.println(val); } // (追記)通常のfor文 for (int i = startNumber; i < startNumber + beafList.size(); i++) { System.out.println(beafMap1.get(i)); }

投稿2024/01/02 12:50

編集2024/01/02 13:07
hiroki-o

総合スコア1586

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

abcdefghij

2024/01/02 12:54

回答してくださりありがとうございます。 しかし、拡張forではなく通常のfor文での回答が欲しいのです。
abcdefghij

2024/01/02 13:18

そのままだと定数が全部出力されてしまいましたが、if (i % 2 == 0)を加えたら望んだものが出力できたため、これでやってみます。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.30%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問