2016-07-12 4 views
-2

forループ内でforループを使用すると、行と列を持つと仮定して長方形を印刷できます。 どのようにして、A列、B列、またはa列のいずれかの文字を一定の割合で印刷しますか?

例えば

int rows = 5; 
    int cols = 5; 
    double rand = Math.random() * 100; 

    for (int i = 0; i < rows; i++) { 
    for (int j = 0; j < cols; j++) { 
     System.out.print("*"); 
    } 
    System.out.println(" "); 
    } 
出力されている

***** 
***** 
***** 
***** 
***** 

どのように一つの印刷文字などの代わりにアスタリスクで、我々はアスタリスクがいずれかの文字Aで置き換えることができていること、 B、またはアスタリスク( "")。それをさらに困難にするために、文字「A」が60%、文字Bが30%、「」が10%のアスタリスクになる確率を、時間の?

私はこのようなものを考えていました。私のロジックは、私はあなたが正しい軌道に乗っていると言うだろうか、私はこれを変更するために行うことができますが

 double rand = Math.random() * 100; 

     if (rand < 30) { 
      System.out.print("C"); 
     } 
     if (rand < 10 && rand > 0) { 
      System.out.print("H"); 
     } 
     if (rand < 60 && rand > 0) 

答えて

0

を?:、正しいしかし(10も30未満であるため)最初に最低の条件をテストする必要がありますの場合は、elseを使用してください。何かのように

double rand = Math.random() * 100; 
if (rand < 10) { 
    System.out.print("*"); // <-- 10 percent of the time 
} else if (rand < 40) { // <-- 10 + 30 = 40 
    System.out.print("B"); // <-- 30 percent of the time. 
} else { 
    System.out.print("A"); // <-- 100 - 40 = 60 
} 
関連する問題