2014-09-30 79 views
0

基本上我想要做的是當「HundredBill」大於1時打印一個複數詞,當「HundredBill」等於1時打印一個單詞並打印沒有什麼,但繼續爲「五十號」打印。例如:當我輸入150時,輸出將是1百。當我輸入50時,輸出將是1 Fifty(它跳過顯示0百)。如何在java中跳過打印「if」

感謝您的幫助!

if (HundredBill > 1) { 
    System.out.printf("%d Hundreds\n", Hundred); 
}else if(HundredBill == 1){ 
    System.out.printf("%d Hundred\n", Hundred); 
}else if(HundredBill == 0){ 
} 
if (FiftyBill = 1) { 
    System.out.printf("%d Fifty\n", Fifty); 
+1

沒有得到你的問題 – 2014-09-30 10:09:01

+0

你沒有回答自己的問題,你的僞代碼做你要求的... – user1933888 2014-09-30 10:11:13

+2

沒有得到它......另外'如果(FiftyBill = 1)'可能是錯誤的。 – m4rtin 2014-09-30 10:11:36

回答

0

從你的問題。我從你的問題中得到的唯一部分。

當我輸入150時,輸出將是1百。當我輸入50, 輸出爲1五十

你可以嘗試這樣的

int val = 150; 
int hundreds = val/100; 
int fifties; 
if (hundreds == 0) { 
    fifties = val/50; 
    System.out.println("fifties "+fifties); 
}else { 
    System.out.println("Hundreds "+hundreds); 
} 

評論對你的代碼的東西。

if (FiftyBill = 1) // here FiftyBill = 1 is not a boolean you will get 
        // compile errors. 
1

,你可以這樣做:

public static void main (String[] args) 
{ 
    int price=150; 
    int hundred=price/100; 
    if(hundred==1 || hundred==0){ 
      System.out.println(hundred+" hundread"); 
    }else{ 
     System.out.println(hundred+" hundreads"); 
    } 
    price%=100; 
    int fifty=price/50; 
    if(fifty==1||fifty==0){ 
      System.out.println(fifty+" fifty"); 
      } 
} 
0

如果您尋找打破投入量不同,要做到這一點的最好辦法是使用遞歸代碼就像這樣:

toWord(570);//any input number 
private static void toWord(int i) { 

    if(i >= 100){ 
     System.out.println((i/100) + " Hundred(s)"); 
     toWord(i%100); 
    } 
    else if(i >= 50){ 
     System.out.println((i/50) + " Fifty(ies)"); 
     toWord(i%50); 
    } 
} 

那麼您可以通過訪問該方法

,如果你想擴展它來支持成千上萬只添加方法:

if(i >= 1000){   
     System.out.println((i/1000) + " Thousand(s)"); 
     toWord(i%1000); 
    }// and change the first if into "else if" 

這應該解決您的問題:)