Никак не получается вывести результат.Не завершается цикл
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// write your code here
Scanner scanner = new Scanner(System.in);
int a = scanner.nextInt();
int b = scanner.nextInt();
int c = scanner.nextInt();
int localMin = 0;
while (a != -1 | b != -1 | c != -1) {
if (a > b && b < c) {
localMin++;
}
a = b;
b = c;
c = scanner.nextInt();
}
System.out.println("Количество локальных минимумов - " + localMin);
}
}
Ответы (1 шт):
Автор решения: Alex Rudenko
→ Ссылка
В данном случае для выхода из цикла, если одно из чисел не равно -1 оператор логического ИЛИ || должен использоваться в отрицательном условии:
while (!(a == -1 || b == -1 || c == -1)) {
//..
}
которое можно переписать по законам де Моргана NOT (A OR B) = NOT (A) AND NOT(B) через логическое И &&
while (a != -1 && b != -1 && c != -1) {
// ...
}