2016-07-12 5 views
-2

Таким образом, используя цикл for внутри цикла for, можно напечатать прямоугольник с учетом того, что у нас есть строки и столбцы.Как напечатать символ A, B или * в прямоугольнике столбца Row * Colon только определенный процент времени?

Например,

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(" "); 
    } 

выход будучи

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

Как один печатный символ, например, что вместо звездочки, мы можем иметь звездочка заменить либо на букву А, B или звездочкой («»). Чтобы сделать его еще более трудным, скажем, вероятность того, что вместо звездочки будет буква «А» 60% времени, буква В, 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 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^