#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' Также настоятельно Вам рекомендую пользоваться поисковиком, там есть очень много статей и материала, которые Вам помогут.
Комментариев нет:
Отправить комментарий