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 компилятор не останавливается. Не пойму почему.
решил так: 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
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP