java
1class Test{ 2 public static void main(String[]args){ 3 for(int x=0; x<3; x++){ 4 for(int y=0; y<x; ++y) 5 System.out.print("a"); 6 System.out.print("B"); 7 } 8 } 9}
「上記のコードを出力表示した際に、結果として正しいのはどれか」という問題でした。for内にa,bもないので、何も表示されないという選択肢を選びましたが、違いました。解答はbabaabでしたが、仕組みが全く理解できません。例題にもそのようなものはなく、非常に不親切であると感じました。教えてくれる方がいれば、幸いです。
System.out.print(a);
と
System.out.print("a");
の違いはわかりますか?
下の"a"は文字列ですよね?
上のaは変換されるaという認識です
前の質問でも何度か同じようなことを指摘されていますが、実際にご自分で動かしてみましたか?
for(int x=o; x<3; x++){
なら、コンパイルエラーじゃないの?
そんな引っ掛け問題みたいなクソコードが問題だったのですか?
ところで、問題に "b" をプリントするコードがどこにもないのでその回答にはなりえないと思います。
オラクルの試験は、ひっかけのあるクソコードだらけだよw
何が表示されますか?という問題の選択肢にコンパイルエラーってのが実際にある。
動かしてみるのもそうですが、デバッガーで1行1行ステップ実行させてみると分かるはずです。あと、
> for(int x=o; x<3; x++){
の部分、 x=o ではなく x=0 の間違いでは。
「for内にa,bもない」とはどういう意味でしょうか?
x=0でした。すいませんでした。確認したところ、出力表示は上記の通りでした。自分で一応動かして、頑張っていますが、未だに理解の至らない点があります。例題にも、無かったものですから…
for(int y=0; y<x; ++y)
System.out.print("a");
System.out.print("B");
と
for(int y=0; y<x; ++y) {
System.out.print("a");
System.out.print("B");
}
の違いは判りますか?
for(int y=0; y<x; ++y)
System.out.print("a");
System.out.print("B");
と
for(int y=0; y<x; ++y) {
System.out.print("a");
System.out.print("B");
}
の違いは判りますか?
すいません、理解できません。
前者のループする範囲は{}が無いので、System.out.print("a"); だけです。
以下と同じです。
for(int y=0; y<x; ++y){
System.out.print("a");
}
System.out.print("B");
後者のループする範囲は、{}内のSystem.out.print("a");とSystem.out.print("B");です。
回答4件
あなたの回答
tips
プレビュー