前提・実現したいこと
Javaで2つの値(整数)と四則演算(+,-,*,/)の1つを入力して、その計算結果を表示するシステムを作っています。
自分で一通りコードを入力してみたのですが、if文のところだけが反映されません。実行されないことからエラーが起きていると思われるのですが、エラーメッセージが表示されないため解決に困っています。自分でサイト等を調べてみたのですが、なかなか効果的な方法が見つからなかったです。わかる方いましたらよろしくお願いいたします。
発生している問題・エラーメッセージ
問題:if文が実行されません。
該当のソースコード
Java
1// scannerを用いてキーボードから値を入力します。 2import java.util.Scanner; 3 4public class exe03 { 5 public static void main(String[] args){ 6 7 // int型の配列numを定義します。要素数は3です。 8 int[] num = new int[3]; 9 Scanner scanner = new Scanner(System.in); 10 11 System.out.println("求めたい計算式を入力してください.(ただし一つの演算のみ)"); 12 System.out.println("1つ目の値を入力してください."); 13 14 // 入力した値を定義した変数Aに代入し、そのAをnum[0]に代入します。 15 int A = scanner.nextInt(); 16 num[0] = A; 17 18 System.out.println("2つ目の値を入力してください."); 19 20 // 入力した値を定義した変数Bに代入し、そのBをnum[1]に代入します。 21 int B = scanner.nextInt(); 22 num[1] = B; 23 24 System.out.println("四則演算より1つ選んで入力してください."); 25 26 // 四則演算(+,-,*,/)の中から1つ選んで入力し、String型で定義した変数Cに代入します。 27 String C = scanner.next(); 28 29 scanner.close(); 30 31 // 入力した値をif文によって場合分けします。 32 // エラーメッセージも何も反応なく、ここが実行されなくて悩んでいます。 33 if(C == "+"){ 34 num[2] = num[0] + num[1]; 35 System.out.println(num[2]); 36 }else if(C == "-"){ 37 num[2] = num[0] - num[1]; 38 System.out.println(num[2]); 39 }else if(C == "*"){ 40 num[2] = num[0] * num[1]; 41 System.out.println(num[2]); 42 }else if(C == "/"){ 43 num[2] = num[0] / num[1]; 44 System.out.println(num[2]); 45 } 46 } 47}
試したこと
if文の直前と直後に記入したプログラムは実行されるのかを確認するために、以下の操作①②を行いました。
① scanner.close();の次の行に、
System.out.println(num[0]);
System.out.println(num[1]);
System.out.println(C);
の3つを入力して実行したところ、値を表示することができました。そのため、if文の直前のプログラムは実行されることがわかり、値が配列の各要素に入っていることは確認できました。
② if文の直後に、System.out.println("Hello World!");と入力して正しく実行されるかを確認しました。
その結果正しく実行されたため、if文の直後のプログラムはちゃんと読み込まれることがわかりました。
以上より、if文の直前と直後のプログラムは実行されることがわかりました。
しかしその間も、if文のプログラムだけは実行されずエラーメッセージも表示されません。
補足情報(FW/ツールのバージョンなど)
Visual Studio Codeを用いてプログラミングをしています。
バージョンは1.57.1です。
言語はJavaです。
追記(6/29)
ソースコードのコメントは実際のものではなく、提示するために手で入力したものです。
回答4件
あなたの回答
tips
プレビュー