Java 这个非常简单的猜测游戏不起作用
我尝试制作一个非常简单的猜测游戏,我想通过使用切换功能对用户的猜测进行分析来添加一个令人兴奋的内容,但令我惊讶的是,它没有运行该分析Java 这个非常简单的猜测游戏不起作用,java,Java,我尝试制作一个非常简单的猜测游戏,我想通过使用切换功能对用户的猜测进行分析来添加一个令人兴奋的内容,但令我惊讶的是,它没有运行该分析 public static void main (String args[]){ Scanner reader = new Scanner(System.in).useLocale(Locale.ROOT); int num = 8 , guess; boolean positiveguess = true; while (positiveguess) { S
public static void main (String args[]){
Scanner reader = new Scanner(System.in).useLocale(Locale.ROOT);
int num = 8 , guess;
boolean positiveguess = true;
while (positiveguess) {
System.out.println("Enter your guess = ");
guess = reader.nextInt();
if (guess != num)
switch(guess)
{
case '1':
if (num-5 < guess && num + 5 >guess)
System.out.println("Your guess is almost close! \nTry again ");
break;
case '2':
if (num-10 < guess && num + 10 >guess)
System.out.println("You need to guess again ");
break;
}
else
positiveguess = false;
}
System.out.println("Great !");
publicstaticvoidmain(字符串参数[]){
Scanner reader=new Scanner(System.in).useLocale(Locale.ROOT);
int num=8,猜测;
布尔正高斯=真;
while(正数){
System.out.println(“输入您的猜测=”);
guess=reader.nextInt();
如果(猜测!=num)
开关(猜测)
{
案例“1”:
如果(num-5guess)
System.out.println(“您的猜测几乎接近了!\n再次尝试”);
打破
案例“2”:
如果(num-10guess)
System.out.println(“您需要再次猜测”);
打破
}
其他的
阳性=假;
}
System.out.println(“太棒了!”);
您在此处错误地使用了开关。您似乎在寻找类似以下内容:
switch (guess) {
// first case
case (num-5 < guess && num + 5 >guess):
System.out.println("Your guess is almost close! \nTry again ");
// second case
case (num-10 < guess && num + 10 >guess):
System.out.println("You need to guess again ");
}
另外,您可以通过将顺序更改为(num-5
或使用Math.abs
查找绝对差异,并在条件下使用。您的切换基于用户输入,而不是给定值和执行值之间的差异。首先,我建议您使用if/else
结构保持简单
公共类主{
公共静态void main(字符串参数[]){
Scanner reader=new Scanner(System.in).useLocale(Locale.ROOT);
int num=8,猜测;
布尔正高斯=真;
while(正数){
System.out.println(“输入您的猜测=”);
guess=reader.nextInt();
如果(猜测!=num){
如果(num-5guess){
System.out.println(“您的猜测几乎接近了!\n再次尝试”);
}else if(num-10guess){
System.out.println(“您需要再次猜测”);
}
}否则{
阳性=假;
}
}
System.out.println(“太棒了!”);
}
}
然后,我建议您删除您的positiveguess
,并在过程中执行循环,将您的条件放入其中。然后使用Math.abs()
获得猜测值和期望值之间的差
公共类主{
公共静态void main(字符串参数[]){
Scanner reader=new Scanner(System.in).useLocale(Locale.ROOT);
int num=8;
int guess=Integer.MIN_值;
while(猜测!=num){
System.out.println(“输入您的猜测=”);
guess=reader.nextInt();
int diff=Math.abs(num-guess);
如果(差异!=0){
如果(差值<5){
System.out.println(“您的猜测几乎接近了!\n再次尝试”);
}否则如果(差值<10){
System.out.println(“您需要再次猜测”);
}否则{
System.out.println(“你太过分了,兄弟”);
}
}
}
System.out.println(“太棒了!”);
}
}
您是在字符值而不是int值上进行分支,即用案例1
替换案例1
等等..我对您在检查中使用num
感到困惑…您是否试图查看猜测是否在num
的特定范围内?您可以通过doi更轻松地实现这一点ngint-accurity=Math.abs(num-guess);
后接检查,如if(accurity<5){//close-accurity message}else if(accurity<10){//not so-accurity message}else{//not accurity at all message}
。
if (num-5 < guess && num+5 > guess) {
System.out.println("Your guess is almost close! \nTry again ");
} else if (num-10 < guess && num+10 > guess) {
System.out.println("You need to guess again ");
}