我收到语法错误,我无法弄清楚为什么.我是编程课程的介绍,所以我的知识非常有限.这是我要做的项目和我到目前为止的代码.我只是想测试它,看看我是否在正确的道路上,但我不能.任何帮助都会非常感激,所以我至少可以看到我的下一个问题是什么.哈哈.
import java.util.*;
public class project2 {
public static void main(String[] args) {
Scanner in = new Scanner (System.in);
System.out.println("Welcome, I am thinking of a number between 1-100. Take a guess!");
System.out.print("Please enter your number: ");
int guess = in.nextInt();
Random r = new Random(101);
int counter = 0;
int totalcount = 6;
While (counter != totalcount) { // being told to insert ";" and I have no clue why
if ( guess < r) {
System.out.print("You guessed " + guess);
System.out.println("Too Low");
} else if ( guess > r) {
System.out.print("You guessed " + guess);
System.out.println("Too High");
} else ( guess = r ) {
System.out.print("You guessed " + guess);
System.out.println("YOU'RE PSYCHIC!");
}
counter++;
}
}
}
Run Code Online (Sandbox Code Playgroud)
您的资本不正确While.它应该是while(全部小写).
请参阅文档了解while.
但是,您的代码还存在许多其他问题.
首先,如果您已经测试过一个数字不大于或小于它必须的数量,那么根据定义,它是相等的.因此,你可以改变
else ( guess = r ) {
Run Code Online (Sandbox Code Playgroud)
至
else
Run Code Online (Sandbox Code Playgroud)
这对你来说是幸运的,因为guess = r不会测试平等.相反,它会指定的值r来guess.另外,因为else (condition)是语法错误.
其次您正在尝试一个比较int,以一个Random在这一行:
if ( guess < r) // r is of type Random, guess is of type Int.
Run Code Online (Sandbox Code Playgroud)
你应该做的是使用你Random来获得一个int,例如:
Random rnd = new Random();
int r = rnd.nextInt();
if (guess < r) // This is now valid.
Run Code Online (Sandbox Code Playgroud)
第三,你已经用101播种了随机数生成器.这意味着它将始终返回相同的数字序列.这可能是你想要的,但如果不是,你可以使用无参数构造函数以当前时间(以毫秒为单位)播种它
Random rnd = new Random();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
580 次 |
| 最近记录: |