以下代码哪里错了? package bao; import java.util.Random; import java.util.Scanner; public class XunHuan { public static void main(String[] args) { Scanner su=new Scanner(System.in); Random ran = new Random(); int i = ran.nextInt(100); int sum=0; while(true) { System.out.println("请输入一个数:"); int input=su.nextInt(); if(input!=i) { int a=i-10; int b=i+10; sum++; continue; if(input>i) { System.out.println("大了"); System.out.println("随机数在"+a+"--"+b+"之间"); System.out.println("请重新输入:"); }else if(input<i){ System.out.println("小了"); System.out.println("随机数在"+a+"--"+b+"之间"); System.out.println("请重新输入:"); } }else { System.out.println("猜对了"); System.out.println("您总共猜了"+sum+"次"); break; } } } }
时间: 2024-04-16 17:23:56 浏览: 20
在这段代码中,存在一个逻辑错误。问题出在了`continue`语句之后的代码块中。在`continue`语句之后,程序不会执行之后的任何代码,所以`if(input>i)`和`else if(input<i)`的判断永远不会被执行。
为了解决这个问题,你需要将`continue`语句放在`if(input!=i)`的外部,这样可以继续执行后面的判断和输出语句。同时,你还需要将计算`a`和`b`的代码放在`if(input!=i)`的内部,这样才能正确显示随机数范围。
下面是修改后的代码:
```java
package bao;
import java.util.Random;
import java.util.Scanner;
public class XunHuan {
public static void main(String[] args) {
Scanner su=new Scanner(System.in);
Random ran = new Random();
int i = ran.nextInt(100);
int sum=0;
while(true) {
System.out.println("请输入一个数:");
int input=su.nextInt();
if(input!=i) {
int a=i-10;
int b=i+10;
sum++;
if(input>i) {
System.out.println("大了");
System.out.println("随机数在"+a+"--"+b+"之间");
System.out.println("请重新输入:");
}else if(input<i){
System.out.println("小了");
System.out.println("随机数在"+a+"--"+b+"之间");
System.out.println("请重新输入:");
}
continue;
}else {
System.out.println("猜对了");
System.out.println("您总共猜了"+sum+"次");
break;
}
}
}
}
```
这样修改后,程序会正确判断输入数和随机数的关系,并输出相应的提示信息。