(НАЧИНАЮЩИЙ) JAVA делать ... пока l oop logi c сломан? - PullRequest
0 голосов
/ 30 марта 2020

В приведенном ниже коде я делаю do.. while l oop, которое должно повторяться, если значение находится между 1000 и 9999, но логика c do do, в то время как l oop кажется отключенной ,

import java.util.Scanner;
public class Nal2 {
public static void main(String[] ARGS) {
    int i = 0;
    Scanner bralnik = new Scanner(System.in);
    do {
        System.out.printf("Insert a 4 digit num: ");
        i = bralnik.nextInt();
    } while (i >= 1000 && i <= 9999);

    System.out.print("Oi");
  }
}

Это не работает, но код ниже работает.

import java.util.Scanner;
public class Nal2 {
public static void main(String[] ARGS) {
    int i = 0;
    Scanner bralnik = new Scanner(System.in);

    do {
        System.out.printf("Insert a 4 digit num: ");
        i = bralnik.nextInt();

    } while (i <= 1000 || i >= 9999);

    System.out.print("Oi");
 }
}

Если && работает вместо ||?

I ' Я действительно запутался в этом.

Я использую InteliJ IDEA 2019.3.4 CE

1 Ответ

0 голосов
/ 30 марта 2020
   public static void main(String[] args) {
        int i = 0;
        Scanner bralnik = new Scanner(System.in);

        do {
            System.out.printf("Insert a 4 digit num: ");
            i = bralnik.nextInt();


        } while (!(i<=1000||i>=9999));

        System.out.print("Oi");
    }

если вы пишете код только с помощью OR (||), вы пишете выше. ! Логически не инвертирует результат, возвращает false, если результат равен true. Ваш второй фрагмент не работает, потому что вы пишете ИЛИ, ИЛИ возвращает значение true, если выполняется одно из условий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...