switch文についてのお尋ねです。
switch文とは言っておりますがスイッチ文の引数やこの式の私の理解度について誤差や認識の違いをご指摘いただければと思います。
str1のフィールドにはa~kの文字列が入っています。
str2のフィールドにはnullが入っている。nullは何もないときの処理?と理解しています。
ここまでは大丈夫でしょうか。
本題はスイッチ文の中の(str1.charAt(5))というものについてです。
①char型の配列の5番目を受け取りたいと言っているの?
②()じゃなくて[]じゃないの?と思ってしまいました。
③5番目なら私のこれまでの勉強では
0:a 1:b 2:c 3:d 4:e (全部で5ある)
なのでcase'e'に当てはまるのでは?と混乱しています。
④最後にswitchの処理の中でもprintlnの中でもstr2を指定しているのはstr1と参照が同じだから問題なく表示されている。という認識で間違い無いでしょうか。
コード public class Main { public static void main(String[] args){ String str1 = "abcdefghijk"; String str2 = null; switch(str1.charAt(5)){ case 'e': str2 = "char E"; break; case 'f': str2 = "char F"; break; default: str2 = "other"; } System.out.println(str2); } }
前の質問とも重なりますが、char[]とStringは、Javaでは別な型です。しっかり区別してください。
そもそもシングルクォートでは動かないですよ。コンパイルも動作もさせてないコード載せるのやめませんか?
本題よりまえに突っ込む内容が多すぎて、それ以前の問題です。
厳しめに言うとお話になりません
maisumakunさん、了解しました。ありがとうございます。
javabronze問題集の一例を載せさせて頂きました。コードについて実際に書いてコンパイル、実行まで済んだ上で理解できていない部分をお尋ねさせて頂いている次第です。
ご指摘ありがとうございます。
シングルクォートでコンパイル通るはずがないです。構文エラーです。
→charは通るんですね(Stringは通らない)。失礼しました。なかなか使わない表現だったもので。
回答4件
あなたの回答
tips
プレビュー