#java #arrays
#java #массивы
Вопрос:
import java.util.Scanner;
public class Array1{
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int[] values = {1, 2, 3, 4, 5};
System.out.println("Please enter an integer:");
int userInput = input.nextInt();
for (int i = 0; i < values.length; i ) {
if (values[i] == userInput) {
System.out.println("value found!");
} else {
System.out.println("value not found!");
}
}
}
}
итак, допустим, пользователь вводит 3, я бы хотел, чтобы он выводил значение, найденное только один раз, но вместо этого оно выводит, или если пользователь вводит числа, не входящие в массив, я бы хотел, чтобы он говорил, что значение не найдено, только один раз, а не повторял его для каждого числа в массиве. Я просто хотел бы сравнить число, введенное пользователем, и посмотреть, найдено ли оно в массиве.
value not found!
value not found!
value found!
value not found!
value not found!
Ответ №1:
Самым простым решением, которое я могу придумать, было бы использовать флаг.
boolean found = false;
for (int i = 0; i < values.length; i ) {
if(values[i] == userInput) {
found = true;
break; // can end the loop since value was found
}
}
if(found) {
System.out.println("value found!");
} else {
System.out.println("value not found!");
}
Ответ №2:
Причина, по которой вы видите это, заключается в том, что вы выводите результат if
инструкции на каждой итерации цикла.
Вместо этого, что вы хотели бы сделать, это установить boolean
значение перед циклом и установить его равным true
, если значение найдено.
Затем, после завершения цикла, вы можете проверить, было ли boolean
когда-либо установлено значение true
:
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int[] values = {1, 2, 3, 4, 5};
System.out.println("Please enter an integer:");
int userInput = input.nextInt();
boolean valueFound = false;
for (int i = 0; i < values.length; i ) {
if (values[i] == userInput) valueFound = true;
}
if (valueFound) {
System.out.println("Value Found!");
} else {
System.out.println("Value NOT Found!");
}
}
Результат:
Please enter an integer:
3
Value Found!