2017-03-13 50 views
0

我想根據用戶輸入創建一個結果(result1)。我收到一個錯誤,說result1可能沒有啓動。如果我通過輸入int result1 = 0;將它添加到上面的代碼中,我的if-then-else語句導致system.out.println(result1);每次都會給我一個0的結果。它完全跳過了我的if-then-else語句。一旦用戶輸入一個字符串,不應該立即啓動result1嗎?我很感謝能給出的任何建議或見解。比較字符串時掃描儀&if-then-else問題

import java.util.Scanner; 

public class Main { 

    public static void main(String[] args) { 


     Scanner sc0 = new Scanner(System.in); 
     System.out.print("What would you like to do?: (A)Addition (B)Subtraction (C)Multiplication (D)Division: "); 
     String input0 = sc0.nextLine(); 

     Scanner sc1 = new Scanner(System.in); 
     System.out.print("Enter a number: "); 
     String input1 = sc1.nextLine(); 

     Scanner sc2 = new Scanner(System.in); 
     System.out.print("Enter a number: "); 
     String input2 = sc2.nextLine(); 

     int int1 = Integer.parseInt(input1); 
     int int2 = Integer.parseInt(input2); 


     if (input0 == "A") 
     { 
      result1 = int1 + int2; 
     } 
     else if (input0 == "B") 
     { 
      result1 = int1 - int2; 
     } 
     else if (input0 == "C") 
     { 
      result1 = int1 * int2; 
     } 
     else if (input0 == "D") 
     { 
      result1 = int1/int2; 
     } 
     else { 
      System.out.println("You have entered an invalid option."); 
      System.exit(0); 
     } 


     System.out.println("Your result is, " + result1 + "!"); 



    } 
} 
+0

在Java中,應先聲明變量,然後才能使用它。初始化您的int結果= 0並使用.equals而不是==進行字符串比較。 – imprezzeb

+0

當我使用single =時,java給了我一個期望布爾值的錯誤。我如何避免這種情況? – Izlix

+0

這是因爲單個(=)等號被用作賦值運算符。請檢查我的答案下面的正確字符串比較。 – imprezzeb

回答

0

使用equals代替==操作符。

int result1 = 0; 
     Scanner sc0 = new Scanner(System.in); 
     System.out.print("What would you like to do?: (A)Addition (B)Subtraction (C)Multiplication (D)Division: "); 
     String input0 = sc0.nextLine(); 

     Scanner sc1 = new Scanner(System.in); 
     System.out.print("Enter a number: "); 
     String input1 = sc1.nextLine(); 

     Scanner sc2 = new Scanner(System.in); 
     System.out.print("Enter a number: "); 
     String input2 = sc2.nextLine(); 

     int int1 = Integer.parseInt(input1); 
     int int2 = Integer.parseInt(input2); 


     if (input0.equals("A")) 
     { 
      result1 = int1 + int2; 
     } 
     else if (input0.equals("B")) 
     { 
      result1 = int1 - int2; 
     } 
     else if (input0.equals("C")) 
     { 
      result1 = int1 * int2; 
     } 
     else if (input0.equals("D")) 
     { 
      result1 = int1/int2; 
     } 
     else { 
      System.out.println("You have entered an invalid option."); 
      System.exit(0); 
     } 


     System.out.println("Your result is, " + result1 + "!"); 

,它總是返回0,因爲使用的是==操作符,它doesn'e evaulate要麼你的IF條件。