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

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

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

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

Q&A

解決済

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

umi_33332
umi_33332

総合スコア1

Java

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

4回答

0グッド

0クリップ

469閲覧

投稿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ここにより詳細な情報を記載してください。

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

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

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

下記のような質問は推奨されていません。

  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

can110

2023/01/26 07:42 編集

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

2023/01/26 07:42 編集

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

2023/01/26 07:46

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

回答4

1

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

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

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

投稿2023/01/26 07:55

can110

総合スコア36956

umi_33332😄を押しています

下記のような回答は推奨されていません。

  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

1

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

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

投稿2023/01/26 07:38

編集2023/01/26 07:39
y_waiwai

総合スコア86451

umi_33332👍を押しています

下記のような回答は推奨されていません。

  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

0

自己解決

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

投稿2023/01/26 08:39

umi_33332

総合スコア1

下記のような回答は推奨されていません。

  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

2023/01/26 21:28

こちらの質問が複数のユーザーから「質問に対する回答となっていない投稿」という指摘を受けました。

回答へのコメント

int32_t

2023/01/26 21:29

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

0

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

投稿2023/01/26 07:45

umi_33332

総合スコア1

下記のような回答は推奨されていません。

  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

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

ただいまの回答率
86.02%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Java

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