2014-11-24 1 views
-4

Моя программа должна попросить пользователя ввести сумму, которую они хотят снять со своей учетной записи, и рассчитать текущий баланс после снятия. Требование о снятии составляет не менее 100 и не более 1000. Если пользователь вводит неверный ввод, программа должна повторно запросить и попросить пользователя снова ввести сумму. Этот процесс будет повторяться до тех пор, пока пользователь не наберет правильную сумму. После выбора нужной суммы он должен рассчитать и отобразить текущий баланс.Как создать цикл для ввода пользователем (пока пользователь не вводит правильный ввод)?

Это, как я пытался, но я не в состоянии сделать петлю:

package ex3; 

    import java.util.Scanner; 

    public class BankApp { 

     public static void main(String[] args) { 
      //displaying the welcome message 
      System.out.println("Welcome to our bank.\nYour initial balance is 1000 SEK\n"); 
      //initializing all necessary variables 
      double initialBalance = 1000; 
      double userChoise = 0; 
      double currentBalance; 

      //asking user to enter expected amount 
      System.out.println("Enter your amount you want to withdraw (in SEK): "); 
      //creating new instance of the scanner class 
      Scanner iScanner = new Scanner(System.in); 
      //store into userChoise whatever amount is chosen by user 
      userChoise = iScanner.nextDouble(); 
      //checking wheather the user inputs any valid amount or not. In this case it must be minimum 100 and maximum 1000. 
      if(userChoise < 100 || userChoise > 1000) 
      { 
       System.out.println("Error: Enter your amount again(in SEK): "); 
      } 
      else { 
       currentBalance = initialBalance - userChoise; 
       System.out.printf("You have withdrawn %.2f\n", userChoise); 
       System.out.printf("Your current balance is %.2f\n", currentBalance); 
      } 
     } 
    } 
+1

В коде, который вы опубликовали, нет инструкции цикла. Я не вижу, где вы «пытались, но не смогли» сделать цикл. – ajb

+2

вот подсказка - у вас есть вопрос с тегом while-loop, но я не вижу цикла while в вашем коде. – user2366842

+0

'notdone = false; while (notdone) {приглашение для ввода} ' –

ответ

0

использовать во время цикла с истинным состоянием и ломаться, когда вы хотите разорвать.

package ex3; 

     import java.util.Scanner; 

     public class BankApp { 

      public static void main(String[] args) { 
       //displaying the welcome message 
       System.out.println("Welcome to our bank.\nYour initial balance is 1000 SEK\n"); 
       //initializing all necessary variables 
       double initialBalance = 1000; 
       double userChoise = 0; 
       double currentBalance; 

       //asking user to enter expected amount 
       System.out.println("Enter your amount you want to withdraw (in SEK): "); 

       //creating new instance of the scanner class 
       Scanner iScanner = new Scanner(System.in); 

       while(true){ 

       //store into userChoise whatever amount is chosen by user 
       userChoise = iScanner.nextDouble(); 
       //checking wheather the user inputs any valid amount or not. In this case it must be minimum 100 and maximum 1000. 
       if(userChoise < 100 || userChoise > 1000) 
       { 
        System.out.println("Error: Enter your amount again(in SEK): "); 
       } 
       else { 
        currentBalance = initialBalance - userChoise; 
        System.out.printf("You have withdrawn %.2f\n", userChoise); 
        System.out.printf("Your current balance is %.2f\n", currentBalance); 
        break; 
       } 
      } 
      } 
     } 
+1

Спасибо, много работает. Я отвечу на ваш ответ через несколько минут. – Ryan

+0

Добро пожаловать :) –