while循环中的语法错误

Pmi*_*e86 2 java

我收到语法错误,我无法弄清楚为什么.我是编程课程的介绍,所以我的知识非常有限.这是我要做的项目和我到目前为止的代码.我只是想测试它,看看我是否在正确的道路上,但我不能.任何帮助都会非常感激,所以我至少可以看到我的下一个问题是什么.哈哈.

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)

RB.*_*RB. 6

您的资本不正确While.它应该是while(全部小写).

请参阅文档了解while.

但是,您的代码还存在许多其他问题.

首先,如果您已经测试过一个数字不大于或小于它必须的数量,那么根据定义,它是相等的.因此,你可以改变

else ( guess = r ) { 
Run Code Online (Sandbox Code Playgroud)

else
Run Code Online (Sandbox Code Playgroud)

这对你来说是幸运的,因为guess = r不会测试平等.相反,它会指定的值rguess.另外,因为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)