2016-04-27 88 views
-3

下面的代碼將十進制數轉換爲八進制數。我需要的是有它能夠在輸入無效,以顯示這些消息,並重復輸入過程,直到有效的輸入中輸入添加控制結構

「輸入一個十進制數:-1

輸入不應該有!任何負號

輸入一個十進制數:-a

輸入不應該有任何負號

輸入不應包含字母

輸入十進制數:-1.1

輸入不應有任何小數點!

輸入不應該有任何負號!

輸入一個十進制數:-1.a

輸入不應該有任何小數點!

輸入不應該有任何負號!

輸入不能包含字母!

輸入十進制數:15十進制15 =八進制17"

進口java.util.Scanner中;

公共類蘋果

{

public static void main(String args[]) 
{ 
    Scanner sc = new Scanner(System.in); 

    System.out.print("Enter a decimal number: "); 
    int num =sc.nextInt(); 


    int rem; 
    String str=""; 

    int num1 = num; 
    while(num>0) 
    { 
     rem=num%8; 
     num=num/8; 

     str =rem+str; 
    } 
    System.out.println("decimal " + num1 + " = octal " + str); 
} 

}

提前致謝。

回答

0
boolean continueEntering = true; 
    while(continueEntering) 
    { 
     int num =sc.nextInt(); 
     if(your condition failed){ 
     //print whatever you want 
     continueEntering = true; //didnt got the out put so asking again 
     }else{ 
      //input is valid no need to ask data again 
      continueEntering = false; 
     } 

    } 

您需要在while循環中傳遞一個布爾值。如果用戶輸入了無效的輸入,則可以使布爾值爲true,以便您可以再次輸入一次。但是,當用戶輸入有效的輸入時,我已經停止了該程序。你可以通過顛倒布爾值來改變它。