2017-03-22 35 views
0

當用戶選擇是時,它循環並重新開始。當用戶選擇N時,它應該結束程序,但我不確定我在這裏錯過了什麼。這是一個程序,用於告訴您在給程序提供斜率和Y軸截距時的x和y值。java - 當用戶鍵入「N」時結束循環

的Java文件

 int slope; 
     int yintercept; 
     String newEquation; 
     boolean play = true; 


     System.out.print("Enter the slope: "); 
     slope = input.nextInt(); 

     System.out.print("Enter y-intercept: "); 
     yintercept = input.nextInt(); 

     System.out.printf("The equation of the line is: y = %dx + %d", slope, yintercept); 

     System.out.print("\nWould you like to create a new equation... Y or N? "); 
     newEquation = input.next(); 


      while (play) 
      { 
       if (newEquation.equals("Y")) 
       { 
        System.out.print("Enter the slope: "); 
        slope = input.nextInt(); 

        System.out.print("Enter y-intercept: "); 
        yintercept = input.nextInt(); 

        System.out.printf("The equation of the line is: y = %dx + %d", slope, yintercept); 

        System.out.print("\nWould you like to create a new equation... Y or N? "); 
        newEquation = input.next(); 
       } 
       if (newEquation.equals("N")){ 
        play =false; 

       } 
       else{ 
        System.out.print("Enter the slope: "); 
        slope = input.nextInt(); 

        System.out.print("Enter y-intercept: "); 
        yintercept = input.nextInt(); 

        System.out.printf("The equation of the line is: y = %dx + %d", slope, yintercept); 

        System.out.print("\nWould you like to create a new equation... Y or N? "); 
        newEquation = input.next(); 
       } 





      } 
    } 
} 
+0

它適用於我。你輸入「n」而不是「N」? –

+2

通過使用Java的do-while構造,可以極大地簡化代碼。 https://docs.oracle.com/javase/tutorial/java/nutsandbolts/while.html – rajah9

+0

哦哇我多麼愚蠢 –

回答

0

嘗試使用do while結構,以及一個equalsIgnoreCase(使 「y」 和 「Y」 兩反 「Y」 測試)。

int slope; 
int yintercept; 
String newEquation; 
boolean play = true; 


do 
{ 
    System.out.print("Enter the slope: "); 
    slope = input.nextInt(); 

    System.out.print("Enter y-intercept: "); 
    yintercept = input.nextInt(); 

    System.out.printf("The equation of the line is: y = %dx + %d", slope, yintercept); 

    System.out.print("\nWould you like to create a new equation... Y or N? "); 
    newEquation = input.next(); 
} while newEquation.equalsIgnoreCase("Y") 

(我只是剪切和粘貼你的線條,但還沒有編譯和測試。我的道歉,如果我錯過了什麼。)

的DO-同時測試,如果用戶鍵入一個ÿ/y在第一輪之後。請注意,用戶不必鍵入N/n,而是可以鍵入(例如q)以便循環終止。

1

爲什麼你有相同的代碼在如果(newEquation.equals( 「Y」))其他一部分?如果你希望用戶只輸入「Y」或「N」,那麼你可以把它放在其他地方,像這樣: else if(newEquation.equals("N")) 和刪除否則部分。

因爲你如何編寫它,它會測試輸入是否爲「Y」,然後第二次在同一循環迭代中測試輸入是否爲「N」,這意味着你的程序需要斜坡信息在波谷循環中兩次,因爲其他字段僅指「N」。

相關問題