2016-08-23 41 views
0

我的程序中的所有內容似乎都能正常工作,但出於某些奇怪的原因,無論何時它會到達您選擇的輸入部分乘法或除法,然後終止程序,就好像它已完成一樣。我的意圖錯誤來自哪裏?

這是怎麼回事?

我試過將if(Choice.equals(Multiply)) 更改爲「Multiply」,對於另一個也是如此。

但沒有運氣。

這裏是我的代碼:

import java.util.Scanner; 


public class APJAVAPROGRAM { 


    /** 
    * @param args 
    */ 
    public static void main(String[] args) { 
     // TODO Auto-generated method stub 
    Scanner numberinput = new Scanner(System.in); 
    Scanner stringinput = new Scanner(System.in); 

    System.out.print("Input a numerator >>>");    // inputs first Numerator 
    double Numerator = numberinput.nextDouble(); 

    System.out.print("Input a Denominator >>>");   // Inputs first denominator 
    double Denominator = numberinput.nextDouble(); 


    System.out.print("Input a second numerator >>>");    //Inputs second Numerator 
    double Numerator2 = numberinput.nextDouble(); 

    System.out.print("Input a second Denominator >>>");   // Inputs second denominator 
    double Denominator2 = numberinput.nextDouble(); 


    System.out.println("Your entered fractions are " + Numerator + "/" + Denominator + " and "+ Numerator2 + "/" + Denominator2); 
    // Will print out the entered fractions 

    System.out.println("What would you like to do with these?");   //asks user what should be done 
    System.out.print("Multipy, Divide, Add, or Subtract >>>"); 
    String Choice = stringinput.nextLine();        

    double Multiply = Numerator * Numerator2;        
    double Multiply2 = Denominator * Denominator2; 
    if(Choice.equals("Multiply")) 
    { 
    System.out.println(Multiply + "/" + Multiply2 + " Is your answer."); 
    // If the input is multiply it will do as such 
    } 
    else  
    { 
    double Divide = Numerator * Denominator2; 
    double Divide2 = Numerator2 * Denominator; 
    if(Choice.equals("Divide")) 
    System.out.println(Divide + "/" + Divide2 + " Is your answer."); 




    } 
    } 
} 
+0

您是否嘗試過使用調試器? –

+0

我用eclipse中的一個,它沒有找到任何東西 –

+1

我只是將你的代碼逐字地放在我的IntelliJ裏面的'main()'方法中,它運行良好。如果您有一個樣品,請張貼可複製的樣品。 –

回答

2

.equals(Object obj)是大小寫敏感的,如果你在與它正確運行一個大寫字母輸入「正片疊底」,「分化」。

使用.equalsIgnoreCase(Object obj)的串來串比較,不考慮大小寫

+0

非常感謝你在這裏逗留了兩個小時 –

0

我剛纔運行你的代碼,這一切ok了。這裏,輸入/輸出我:

Input a numerator >>>1 
Input a Denominator >>>2 
Input a second numerator >>>3 
Input a second Denominator >>>4 
Your entered fractions are 1.0/2.0 and 3.0/4.0 
What would you like to do with these? 
Multipy, Divide, Add, or Subtract >>>Multiply 
3.0/8.0 Is your answer.