求助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
离开,继续搜索
发现前方一只野兽,是否击杀? 展开
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
离开,继续搜索
发现前方一只野兽,是否击杀? 展开
2个回答
展开全部
添加一个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;
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
展开全部
不明白你的意思,难道这样的逻辑不对吗 看你的演示案例
更多追问追答
追问
意思在这个程序中运行到“是否击杀?”那里,要求输入Y/N,不能输入其他的字符,如果输入的不是Y/N,就要一直提示“请输入Y/N?”这句,直到输对为止,我现在的这个代码输出的结果是:
发现前方一只野兽,是否击杀?
e
请输入Y/N
发现前方一望无垠,继续搜索
发现前方一只野兽,是否击杀?
他并没有一直提示“请输入Y/N”这句,而是跳过了继续循环了
追答
你在请输入Y/N? 这里压根没有写循环
每次循环的是switch。。当然会这样了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询