Страницы

Поиск по вопросам

вторник, 28 января 2020 г.

нужна помощь с кодом типа Random на java

#java


Я сам осваивать джава стал недавно, так что прошу простить за может тупой или неправильный
вопрос . 
Я хочу, чтоб после того, как рандомайзер мне выдал число (от 1 до 9), то взависимости
от того, какое это число, запустился условный оператор, но почему то он не работает
и выделяется красным. Вот тот код, который у меня на данный момент:

Random a = new Random();
    a.nextInt(10);
if (a == 2);
System.out.println("какой то текст 1");
if (a == 6)
System.out.println("какой то текст 2");
//и так далее


Заранее спасибо.
    


Ответы

Ответ 1



Правильно будет так: Random a = new Random(); int i = a.nextInt(10); if (i == 2) System.out.println("какой то текст 1"); if (i == 6) System.out.println("какой то текст 2"); Random a = new Random(); только создает генератор случайных чистел, а вот вызов a.nextInt(10); возвращает вам случайное число, которое уже надо сравнивать А еще у вас вот тут коварная ошибка(лишняя ;):

Ответ 2



Вся соль в том, что в строке Random a = new Random(); создается ссылка на объект класса Random, т.е. она не содержит какого либо целочисельного значения. В строке a.nextInt(10); вы вызываете метод класса Random, который непосредственно и возвращает целочисельное значение. Как уже написали, выше нужно создать примитив типа int, в который вы сохраните результат, и уже его подставляете в условный оператор.

Ответ 3



Во-первых в строке if (a == 2); Не нужна точка с запятой, вы завершили условие без команды, что нужно делать, если условие выполняется, лучше всегда писать условный оператор с фигурными скобками, тогда и условия отделить легче, и не запутаешься с точками с запятой (их ставить не нужно, т.к. закрывающая фигурная скобка сама по себе является завершающим оператором). Условия лучше писать так if (a == 2){ System.out.println("какой то текст 1"); } Касательно темы вопроса. Есть два пути решения проблемы 1) Объявить переменную типа int и подставлять в условие ее, вот так Random a = new Random(); int x = a.nextInt(10); if (x == 2){ System.out.println("какой то текст 1"); } if (x == 6){ System.out.println("какой то текст 2"); } 2) Воспользоваться методом equals вместо "==", вот так Random a = new Random(); if (a.equals(2)){ System.out.println("какой то текст 1"); } if (a.equals(6)){ System.out.println("какой то текст 2"); }

Ответ 4



if (a == 6) { System.out.println("some text"); } Условный оператор выглядит так: if (условие) { // То, что надо сделать } Также можно: if (условие) { // 1 } else { // 2 } А если слишком много условий, то используйте Оператор switch, 'компактный if' Также настоятельно Вам рекомендую пользоваться поисковиком, там есть очень много статей и материала, которые Вам помогут.

Комментариев нет:

Отправить комментарий