TransWikia.com

Ввод значения в консоль пока не введешь заданное

Stack Overflow на русском Asked by Tunix on November 26, 2020

import java.io.BufferedReader;

import java.io.IOException;
import java.io.InputStreamReader;

public class GameRunner {

    public static void main(String[] args) throws IOException {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        String s;
        do{
            s = reader.readLine();
        }
        while(!s.equals("qwe") || !s.equals("rty") || !s.equals("ttt"));

        System.out.println(s);
    }
}

если ввести qwe или rty или ttt компилятор не останавливается. Не пойму почему.

3 Answers

решил так: BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); String s;

    while (true) {
        s = reader.readLine();
        if (s.equals("Камень") || s.equals("Ножницы") || s.equals("Бумага")) {
            break;
        }
    }
    return s;
}

Answered by Tunix on November 26, 2020

И подскажите, как это можно реализовать, через while(true) Пожалуйста :)

Просто делаете бесконечный цикл, а в нем проверяете введенное значение и если оно совпадает с одним из заданных, о завершаете цикл через break

Пример:

import java.io.BufferedReader;

import java.io.IOException;
import java.io.InputStreamReader;

public class GameRunner {
    public static void main(String[] args) throws IOException {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        String s;
        while (true) {
            s = reader.readLine();
            if (s.equals("qwe") || s.equals("rty") || s.equals("ttt")) {
                break;
            }
        }

        System.out.println(s);
    }
}

Answered by gil9red on November 26, 2020

Ваше условие всегда возвращает true. Надо либо использовать and (&&):

while(!s.equals("qwe") && !s.equals("rty") && !s.equals("ttt"));

либо применить отрицание ко всему выражению:

while(!(s.equals("qwe") || s.equals("rty") || s.equals("ttt")));

Answered by savra on November 26, 2020

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP