求助java程序 在最里层的("请输入Y/N")为什么不能反复的提示这句而是跳到第一个随机(rn)里去了

packagedul;importjava.util.Random;importjava.util.Scanner;publicclassdul{publicstatic... package dul;

import java.util.Random;
import java.util.Scanner;

public class dul {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
Random on = new Random();
String x = "动物,";
String Y = "骷髅,";
System.out.println("欢迎来到Dul世界");
System.out.println("即将开始墓地之旅,是否进入?");
do {
String i = in.next();
char a = i.charAt(0);
if (a == 'y' || a == 'Y') {
System.out.println("已成功登入");

while (true) {
int rn = 1;
rn = on.nextInt(2);

switch (rn + 1) {
case 1:

System.out.println("发现前方一望无垠,继续搜索");

case 2:

System.out.println("发现前方一只野兽,是否击杀?");

in.nextLine();

String q = in.next();
char b = q.charAt(0);

if (b=='y'||b=='Y' ){
int x1 = 1;
x1 = on.nextInt(2);
switch (x1){
case 1:
System.out.println("已成功击杀");
break;
case 2:
System.out.println("你被杀死了,原地复活,继续搜索");
break;
}

}else if (b=='n'||b=='N'){
System.out.println("离开,继续搜索");
break;
} else {
System.out.println("请输入Y/N");

}

break;
}

}
} else if (a == 'n' || a == 'N') {
System.out.println("退出登录");
break;
} else {
System.out.println("请输入Y/N?");
}
} while (true);
}
}

我想要实现的结果是这样的:
欢迎来到Dul世界
即将开始墓地之旅,是否进入?
y
已成功登入
发现前方一望无垠,继续搜索
发现前方一只野兽,是否击杀?
y
已成功击杀
发现前方一只野兽,是否击杀?
t
请输入Y/N
e
请输入Y/N
n
离开,继续搜索
发现前方一只野兽,是否击杀?
展开
 我来答
皮皮180105
2016-11-09 · TA获得超过325个赞
知道小有建树答主
回答量:449
采纳率:75%
帮助的人:60.6万
展开全部
添加一个while true,这样你才能让它停留在这里
while(true){

String q = in.next();
char b = q.charAt(0);

if (b=='y'||b=='Y' ){
int x1 = 1;
x1 = on.nextInt(2);
switch (x1){
case 1:
System.out.println("已成功击杀");
break;
case 2:
System.out.println("你被杀死了,原地复活,继续搜索");
break;
}
break;
}else if (b=='n'||b=='N'){
System.out.println("离开,继续搜索");
break;
}else {
System.out.println("请输入Y/N");

}
}

break;
更多追问追答
追问
报错了啊 大哥
怎么上传文件
ok了 3q 可以加vxin吗 不懂的希望可以向你请教
我是菜b 班德尔 要玩可以一起
我的vxin是panyi1023
追答
你看仔细点,还有个地方加了break
miaoch
2016-11-09 · TA获得超过1204个赞
知道小有建树答主
回答量:814
采纳率:83%
帮助的人:342万
展开全部
不明白你的意思,难道这样的逻辑不对吗 看你的演示案例
更多追问追答
追问
意思在这个程序中运行到“是否击杀?”那里,要求输入Y/N,不能输入其他的字符,如果输入的不是Y/N,就要一直提示“请输入Y/N?”这句,直到输对为止,我现在的这个代码输出的结果是:
发现前方一只野兽,是否击杀?
e
请输入Y/N
发现前方一望无垠,继续搜索
发现前方一只野兽,是否击杀?
他并没有一直提示“请输入Y/N”这句,而是跳过了继续循环了
追答
你在请输入Y/N? 这里压根没有写循环

每次循环的是switch。。当然会这样了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式