ดังนั้นฉันจึงต้องถามผู้ใช้ว่าพวกเขาอายุเกิน 18 ปี และพวกเขาต้องตอบเป็นจริงหรือเท็จ และวนซ้ำต่อไปจนกว่าจะป้อนอินพุตที่ถูกต้อง
จนถึงตอนนี้ฉันมีสิ่งนี้
boolean b = false;
do {
try {
System.out.print("Are you above 18?");
Scanner n = new Scanner(System.in);
boolean bn = s.nextBoolean();
if (bn == true) {
// do stuff
} else if (bn == false) {
// do stuff
}
} catch (InputMismatchException e) {
System.out.println("Invalid input!");
}
} while (!b);
อย่างไรก็ตาม มันจะไม่ทำงานเมื่อลูปดำเนินต่อไป และมันจะไม่อ่านอินพุตที่ถูกต้องและทำตามคำสั่ง if ของฉัน ฉันจะแก้ไขสิ่งนี้ได้อย่างไร? ขอบคุณ!
y/n
ในกรณีนี้ - person M-WaJeEh   schedule 15.05.2014bn == true
ซ้ำซ้อนbn
ประเมินเป็นค่าบูลีน - person Sotirios Delimanolis   schedule 15.05.2014b
ของคุณเป็นtrue
ภายในเงื่อนไขข้อใดข้อหนึ่งของคุณหรือไม่? ลูปของคุณจะไม่หยุดจนกว่าb
จะเป็นtrue
และจะไม่มีการอ้างอิงที่ใดก็ได้ในลูปของคุณ คุณหมายถึงทำในขณะที่(!bn)
ใช่หรือไม่? - person Kon   schedule 15.05.2014if(bn == true)
ของคุณด้วยif(bn)
- person M-WaJeEh   schedule 15.05.2014