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

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

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

for文は、様々なプログラミング言語で使われている制御構造です。for文に定義している条件から外れるまで、for文内の命令文を繰り返し実行します。

Q&A

1回答

831閲覧

for文と拡張for文がよく理解できてない。

退会済みユーザー

退会済みユーザー

総合スコア0

for

for文は、様々なプログラミング言語で使われている制御構造です。for文に定義している条件から外れるまで、for文内の命令文を繰り返し実行します。

0グッド

0クリップ

投稿2021/07/13 04:40

この問題がまだすんなり理解できません。
解説は書いてありますがそれを見ても
なんとなくしか理解できないため詳しく教えて頂けますでしょうか?
それか、この記事を読んだら拡張for文やfor文についてより理解できる。などの記事がありましたら教えて下さい。

for文と拡張for文についての記事をもっと読んだ方が良いのでしょうか?

問題.
array配列が持つ各要素を出力したいと考えています。
空欄①に挿入するコードとして正しいものは次のどれですか。2つ選択して下さい。

解答.
FとH

1. public class Main{ 2. public static void main(String[ ]argq) { 3. String[ ]arrays={"xxx","yyy","zzz"}; 4. [ ① ] 5. } 6. }

A. for(String array:s)System.out.println(arrays);
B. for(String s;arrays)System.out.println(s);
C. foreach(arrays)System.out.println(arrays);
D. while(arrays.hasNext())System.out.println(arrays.next());
E. foreach(String arrays:s)System.out.println(s);
F. for(String s:arrays)System.out.println(s);
G. for(int i=0;1<arrays.length();i++)
System.out.println(arrays[i]);
H. for(int i=0;i<arrays.length;i++)
System.out.println(arrays[i]);

解説.
選択肢A コンパイルエラー。拡張for文のカッコ内の記述が構文と異なるため。
選択肢B コンパイルエラー。for文のカッコ内でコロンではなくセミコロンを、使用しているため。
選択肢C コンパイルエラー。for文の構文としてforeachは提供されてない。
選択肢D コンパイルエラー。配列にたいして、hasNext()、next()の各メソッドを使用できない。
選択肢E コンパイルエラー。選択肢cと、同様の説明。
選択肢F 正しい。拡張for文を正しく使用しているため。
選択肢G コンパイルエラー。配列のサイズの獲得にはlength()メソッドではなくlengthを使用する。
選択肢H 正しい。通常のfor文を正しく使用しているため。

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

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

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

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

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

yambejp

2021/07/13 04:43

なにか言語の指定はないのですか?タグ付けして下さい
neconekocat

2021/07/13 04:45

実際にコード書いてエラーメッセージと睨めっこするのが早いかもしれませんよ。 Javaのコンパイラさんは親切なので。
Zuishin

2021/07/13 04:46

これについては文法を覚えるだけでしょう。 何を理解しようとしていますか?
ku__ra__ge

2021/07/13 04:50

「なんとなく分からない。詳しく教えてください。」という問いに対しては、for文と拡張for文についての記事に書いてあることを読んでください以上の回答は存在しないと思いますが……。
Crimson_Tide

2021/07/13 13:01

もう少し具体的に疑問点を説明できないでしょうか。 例えばAはこうなるんじゃないかと思うけど コンパイルエラーになる理由がわからない とか for文の記述がこのような過程で処理されると認識しているが、こうなった場合わからなくなるとか for文のここはAでも良さそうなものだけど、Aでは何故だめなのかわからない とか for文内でどのような処理がされるかわからないとか、ちょっと変わった書き方されると対応できないでは困りますが、数学の記号みたいなもので「Σは和を表すとする」 と同じで for文はこういう書き方をすれば、こういうループ処理をする というルールだと思うしかないと思います。 ちなみに実際に手で動かしていますか?例文だけでなく、自分で全体像を考え、こういう配列があったとして、こういうパターンで抽出してみよう、そういう場合はforをこうすれば・・・といろいろとパターンで試していくなかで、理解できるかもしれません。 手持ち資料と照らし合わせて察するに java silver かbronze試験の紫本の問題かと思います。 私も読んだ際、疑問が度々浮かびました。その際は、検索して解説サイトをいくつか調べた上で、 じゃあこの場合はどうなのか、あの場合はどうなのかと疑問に思った点を実際にコードに書いて実行して理解を深めました。 そういう意味では紫本の解説は、試験範囲を絞っていることも相まって入門書としては完璧とはいえないかもしれません。 現状疑問点が多く進捗が思うように進まないようであれば、maisumakun様の回答にあるように例えば別途厚めの解説書を読むなりしたほうが理解がしやすいかもしれません。 また試験対策ですが、黒本は問題集という形式なので知識0で取り組むのは難しいですが、紫本を読んだあとなら取り組めますし、紫本になかった解説があったりします。 また回答の解説はしっかりしているので、理解の確認の手助けにはなるかと思います。 御参考まで。
guest

回答1

0

今までの質問を踏まえての逆質問なのですが、susu12さんの実現したいことは、「Javaの実力をつけたい」のでしょうか、それとも「実力はどうでもいいから試験に通りたい」なのでしょうか。

仮に後者だったとしても、Java(などジャンルが特定言語に絞られた)の試験は重箱の隅をつついた嫌がらせみたいな問題も多く、試験対策だけで乗り切れるものではありません。真面目に言語を学習するのがむしろ最適な戦略です。

投稿2021/07/13 05:23

maisumakun

総合スコア145208

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

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

退会済みユーザー

退会済みユーザー

2021/07/14 09:03

自分のパソコンが重くて動くのがとっても遅いので知識をまず付けながらと考えているんです。実力はどうでもいいからと考えるわけありませんよね。皆さんの解答も謎に厳しく毎回解答を見る度にストレスになります。
maisumakun

2021/07/14 09:15

> 自分のパソコンが重くて動くのがとっても遅いので知識をまず付けながらと考えているんです。 プログラミングは実技の要素も強いです。知識のインプットだけの学習では、進捗は芳しくないです。 (ブラウザを普通に使える環境であれば、Web経由での動作環境を使うことで、自分のマシンの重さと無縁に進めることもできます) > 実力はどうでもいいからと考えるわけありませんよね。 残念ながらそうと言い切れない…のがここで回答して積んできた経験です。このレベルから確認しておかないと、「そこの前提が違っていた」という事例に何度も遭遇してしまっています。
maisumakun

2021/07/14 09:19

> 皆さんの解答も謎に厳しく すでに他の方からもコメントが付いているように、質問の仕方自体が丸投げのようになってしまっています。 自分で考えたことと整合しないのであれば、その「考えたこと」を明記しましょう。何も書かないのでは「何も考えていない」のと同一視されてしまいます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問