質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.46%
Java

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

Q&A

解決済

4回答

768閲覧

for文が機能しなくて困っています

umi_33332

総合スコア1

Java

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

0グッド

0クリップ

投稿2023/01/26 07:21

前提

なぜかfor文が機能しない

実現したいこと

リストのサイズ分ループしたい

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

エラーメッセージ

該当のソースコード

java

1private static int toInt(List<String> list) { 2 for(int i =0;i <= list.size();i++) { 3 if(list.get(i)==ONE) { 4 return 1; 5 }else if(list.get(i)==TWO) { 6 return 2; 7 }else if(list.get(i)==THREE) { 8 return 3; 9 }else if(list.get(i)==FOUR) { 10 return 4; 11 }else if(list.get(i)==FIVE) { 12 return 5; 13 } 14 return 0; 15 16 } 17 List <String> player = new ArrayList<>(Arrays.asList("ONE","TWO","THREE",)); 18 19 List <Integer> intPlayer = new ArrayList<>(); 20 21 22 intPlayer.add(toInt(player)); 23 24### 試したこと 25 26if文をswitch文にしてみたりと試してみましたが、なぜかfor文が機能していなく一回でループが終わってしまいます。 27 28### 補足情報(FW/ツールのバージョンなど) 29 30ここにより詳細な情報を記載してください。

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

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

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

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

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

can110

2023/01/26 07:42 編集

パッと見る限りforループ内でいずれかの条件に合致したら即returnしているので そのとおりの結果(1回しか回らない)にしかならないと思います。 どのような戻り値(結果)を得たいのかを記載すると適切な回答得られやすくなるかと思います。 (というかループ的な動きは呼出元でやるほうがよいような)
jimbe

2023/01/26 07:42 編集

for 文は機能しています。 それと、 String を == で比較するのは危険です。
umi_33332

2023/01/26 07:46

なるほど。ありがとうございます。
guest

回答4

0

playerに入っているString型の文字をtoIntでint型に変換し、intPlayerに入れたいです

  • toInt単純にStringを受け取りintを返す関数にする。
  • 呼出元でplayerのループ処理を行い、その中でintPlayertoIntの結果を追加していく

ような流れにするとよいかと思います。

投稿2023/01/26 07:55

can110

総合スコア38280

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

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

0

if文に記述してあるreturnで、そこで関数が終了します
ここはどういうふうにしたいんでしょうか

for文が機能しない、のではなく、最初のループで関数が終了させられてしまってる、ですね

投稿2023/01/26 07:38

編集2023/01/26 07:39
y_waiwai

総合スコア87802

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

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

0

自己解決

ありがとうございます!
解決しました

投稿2023/01/26 08:39

umi_33332

総合スコア1

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

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

int32_t

2023/01/26 21:29

回答の助けで解決した場合、「自己解決」にしないでその回答をベストアンサーにしてください。
guest

0

なるほど。
やりたいこととしては、playerに入っているString型の文字をtoIntでint型に変換し、intPlayerに入れたいです

投稿2023/01/26 07:45

umi_33332

総合スコア1

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問