Я сам осваивать джава стал недавно, так что прошу простить за может тупой или неправильный вопрос . Я хочу, чтоб после того, как рандомайзер мне выдал число (от 1 до 9), то взависимости от того, какое это число, запустился условный оператор, но почему то он не работает и выделяется красным. Вот тот код, который у меня на данный момент:
Random a = new Random();
a.nextInt(10);
if (a == 2);
System.out.println("какой то текст 1");
if (a == 6)
System.out.println("какой то текст 2");
//и так далее
Заранее спасибо.
Правильно будет так:
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);
возвращает вам случайное число, которое уже надо сравнивать
А еще у вас вот тут коварная ошибка(лишняя ;
):
Вся соль в том, что в строке Random a = new Random();
создается ссылка на объект класса Random, т.е. она не содержит какого либо целочисельного значения. В строке a.nextInt(10);
вы вызываете метод класса Random, который непосредственно и возвращает целочисельное значение. Как уже написали, выше нужно создать примитив типа int, в который вы сохраните результат, и уже его подставляете в условный оператор.
Во-первых в строке
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");
}
if (a == 6) {
System.out.println("some text");
}
Условный оператор выглядит так:
if (условие) {
// То, что надо сделать
}
Также можно:
if (условие) {
// 1
} else {
// 2
}
А если слишком много условий, то используйте Оператор switch, 'компактный if' Также настоятельно Вам рекомендую пользоваться поисковиком, там есть очень много статей и материала, которые Вам помогут.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Есть кроссплатформенная консольная утилита ring (ставится для работы с программными лицензиями 1С: Предприятия)