2017-03-09 107 views
0

我正在嘗試提示用戶,如果她想再次進行轉換。我正在使用do while循環語句,這是代碼。如何使用do-while循環提示用戶再次輸入

import java.util.Scanner; 
public class FinalTemp { 

    public static void main(String[] args) { 
     //Declare the variables 
     float temperature = 0; 
     boolean number; 

     //The condition is check before running 
     do { 
      System.out.println("Enter Farenheit number:"); 
      Scanner input = new Scanner(System.in); 
      if (input.hasNextFloat()) 
      { 
       temperature = input.nextFloat(); 
       number = true; 
       temperature = ((temperature - 32)*5)/9; 
      } 
      else 
      { 
       System.out.println("Invalid input"); 
       number = false; 
       input.next(); 
      } 

     } while (!(number));//means not equal to the variable number 
     System.out.println("Celcius is " + temperature); 

回答

0

您的代碼在中間結束,因此您不清楚您在哪裏遇到問題。會喜歡下面的工作嗎?

public static void main(String[] args) { 
    Scanner input = new Scanner(System.in); 
    boolean stop = false; 

    // outer loop for two questions 
    do { 
     //Declare the variables 
     float temperature = 0; 
     boolean number; 

     // The loop for conversion question 
     //The condition is check before running 
     do { 
      System.out.println("Enter Farenheit number:"); 
      if (input.hasNextFloat()) { 
       temperature = input.nextFloat(); 
       number = true; 
       temperature = ((temperature - 32) * 5)/9; 
      } else { 
       System.out.println("Invalid input"); 
       number = false; 
       input.next(); 
      } 

     } while (!(number));//means not equal to the variable number 
     System.out.println("Celcius is " + temperature); 

     // The loop for "one more?" 
     do { 
      System.out.println("Do you want to convert one more? (Y/N)"); 
      String yesNo = input.next(); 

      boolean yes = yesNo.toLowerCase().charAt(0) == 'y'; 
      boolean no = yesNo.toLowerCase().charAt(0) == 'n'; 

      if (yes) { 
       stop = false; 
       break; 
      } else if (no) { 
       stop = true; 
       break; 
      } else 
       System.out.println("Only Y or N is expected."); 
     } 
     while (true); 
    } 
    while (!stop); 
}