実現したいこと
①定数の定義する意味
②使用方法、使用用途
③今回の場合での使用方法
④出力失敗かつエラー出ない場合の(4-1)原因や(4-2)原因特定、(4-3)その対処
を知りたいです…。
4つ全部でなくとも、1つでもいいのでご回答いただけたら大変嬉しいです。。
↓下記に詳細を記載しました。↓
発生している問題・分からないこと
①14行目15行目で行う、定数の定義は何故/何の為にするのか
また、②その使い方はどのような使い方でするのか、③今回においては、何行目のコードで使うのか
以上の3点が基本的には教えていただきたいです。
また、④コードを書き換えてしまって今のコードではならないかもしれませんが、
コンパイルして、実行した際に、
コード内(2)29~32行目「ログイン成功です」の出力だけで、他(3)(4)などが出力されず、コンパイル時にエラーも出ませんでした。
逆に、エラーが出ないと何がダメなのかも特定できず困ってしまったので、もしその状況をイメージできて、今回の原因 もしくは 一般的な対処法を教えていただきたいです。
該当のソースコード
Java
1* 本課題では、すべての定数(合計6種類)を使いつつ、if文の使い方に慣れていきましょう! 2 * 問① 〜 問⑤まで回答お願いします! 3 * 4 */ 5public class Task1_6 { 6 7 // 定数(条件) 8 // ① 名前とパスワードの定数を定義してください。 9 // 補足: 10 // 定数は②〜⑤で使い回すために定義しておきます。 11 // final修飾子を付与すると、変数(動的に変わる値)ではなく、定数(変更不可な定まった値)となります。 12 // 「ここへ記述」部分へ適当な値を記述しましょう。 13 // ※詳しくは××××にて紹介します。 14 private static final String CONST_ALICE = "ここへ記述"; 15 private static final String CONST_PASS = "ここへ記述"; 16 // 定数(メッセージ) 17 private static final String CONST_MSG_SUCCESS = "ログイン成功です。"; 18 private static final String CONST_MSG_ERROR_NAME = "名前に誤りがあります。"; 19 private static final String CONST_MSG_ERROR_PASS = "パスワードに誤りがあります。"; 20 private static final String CONST_MSG_ERROR_INPUT = "入力情報に誤りがあります。"; 21 22 public static void main(String[] args) { 23 24 // 以下の変数「name(名前)」「pass(パスワード)」を使用して、②〜⑤の条件を満たす処理を記述してください。 25 // 名前とパスワードは画面からの入力値だと想定してみましょう。 26 String name = "alice"; 27 String pass = "pass"; 28 29 // ② 名前が「 alice 」、パスワードが「 pass 」であった場合、「 ログイン成功です 」と出力してください。 30 if (name.equals("alice")) { 31 System.out.println(CONST_MSG_SUCCESS); 32 } 33 34 // ③ 名前のみ正しい場合、「 パスワードに誤りがあります。 」と出力してください。 35 if (pass.equals("pass")) { 36 } else if (name.equals("alice")) { 37 38 39 System.out.println(CONST_MSG_ERROR_PASS); 40 } 41 42 43 // ④ パスワードのみ正しい場合、「 名前に誤りがあります。 」と出力してください。 44 if (name.equals("CONST_ALICE")) { 45 } else if (pass.equals("CONST_PASS")) { 46 System.out.println(CONST_MSG_ERROR_NAME); 47 } 48 49 // ⑤ 名前もパスワードも間違っていた場合は、「 入力情報に誤りがあります。 」と出力してください。 50 if (!(name.equals("CONST_ALICE")) && !(pass.equals("CONST_PASS"))){ 51 System.out.println(CONST_MSG_ERROR_INPUT); 52 } 53 } 54} 55
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
調べ方が分からなかった。
補足
特になし
> 調べ方が分からなかった。
おそらく何らかのカリキュラムに沿って学習されているのでしょう。
一般には、学習→学習定着の確認のための練習問題→学習→学習定着の確認のための練習問題→ ・・・
の繰り返しです。これが「学習定着の確認のための練習問題」だとすると、お書きのような疑問が湧いたり、お書きのような間違ったプログラムを書いてしまうと言うことは、その前の「学習」の中味がほとんど理解できていないと言うことで、その状態で「学習定着の確認のための練習問題」に取り組むことは時間の無駄です。時間を有効に使うために、学習内容を十分復習して、理解した上で問題に取り組みましょう。復習時の不明点は指導者に質問しましょう。
質問に対しての、指導者の回答が不審な場合は、このサイトで他の人に聞いてみるのも良いでしょう。
何らかのカリキュラムに沿って学習されているのではなく、「ふと見つけたこの問題をやってみた」のであれば、その学習方法はあなたには合ってないということかと思います。
コメントありがとうございます。
仰る通りカリキュラムに沿って学習しています。
定数に関しては、(13行目伏字にしていますが)先の単元にあり、未習です。
その単元も確認したのですが、要約すると「役割は変数と同じで、ただ変えないようなものは定数で定義しましょう」程度しか書かれていませんでした。
また、指導者に質問しましたが、毎度漠然とした回答で、
今回に関しては「(要約すると)このプログラムは、何かのサービスにログインするときの処理を想像してください。それを踏まえた上で再度 定義する意味や使い回し方も考えてみましょう」のような回答でした。
他の方の回答を待ちながら、実行されてないコードに関して学習内容も振り返ってみようと思います。
ほう。この課題が学んでいないことも含んだ練習課題であるとは思いもしませんでしたが、そういう事情だとしょうがないですね。
> 一般には、学習→学習定着の確認のための練習問題→学習→学習定着の確認のための練習問題→ ・・・
と書きましたが、
「学んでいないことを知らないと解けない課題を与えて、自分で調べて学ぶスキルの向上を図る」
という学習方法もあるので、そういう方針なのであれば、そういうつもりで、調べ学ぶしかないですね。
ただ、変数名・定数名を引用符で囲んでしまうという間違いについては、学習済みの範囲かと思いますが。
回答2件
あなたの回答
tips
プレビュー