初学Java程序? if,else,while循环

时间:2014-10-17 19:09:43

标签: java if-statement while-loop

我试图创建一个程序,其中用户认为1到10之间的数字,并且计算机反复尝试通过猜测随机数来猜测它。 (可以多次猜出相同的数字)在游戏结束时,程序会报告它做了多少次猜测。例如:

enter image description here

我写了以下代码:

import java.util.*;

public class Pick {
    public static void main(String[] args){
        System.out.println("This program has you, the user, choose a number");
        System.out.println("between 1 and 10. Then, I, the computer, will try");
        System.out.println("my best to guess it.");

        Scanner console = new Scanner(System.in);
        Random r = new Random();

        int result = -1;
        int count = 0;

        for (i = 1; i <= number; i++){
            while(result != number){
            result = r.nextInt(10) + 1;
            System.out.println("Is it " + r + "? (y/n)");
            String yn = console.next();
            if(String yn = "y"){
                System.out.println("I got your number of " + result + " in " + i + " guesses.");
            } else if (String yn = "n") {
                count++;

            } else {
                System.out.println("I got your number of " + result + " in " + i + " guesses.");
            }
        }
        System.out.println();
    }
}

我很困惑为什么我的程序不起作用?它不会编译并且有7个错误。我想我在if / else语句中出错了。我应该使用while循环吗? 感谢。

文字编译错误:

Pick.java:20: error: ')' expected
            if(String yn = "y"){
                     ^
Pick.java:20: error: ';' expected
            if(String yn = "y"){
                              ^
Pick.java:22: error: ')' expected
            } else if (String yn = "n") {
                             ^
Pick.java:22: error: ';' expected
            } else if (String yn = "n") {
                                      ^
Pick.java:22: error: 'else' without 'if'
            } else if (String yn = "n") {
              ^
Pick.java:25: error: 'else' without 'if'
            } else {
              ^
Pick.java:31: error: reached end of file while parsing
}
 ^
7 errors

3 个答案:

答案 0 :(得分:1)

您正尝试在number使用变量for (i = 1; i <= number; i++){,但它并不存在。您需要初始化数字。

答案 1 :(得分:1)

首先,

if(String yn = "y") {

}

不是你认为的Java。 String yn = "y"是一个赋值语句,而不是一个比较。 要比较Java中的字符串,请使用String's equals() method

还有更多语法问题和明显的编译错误。我建议你尝试在线开始Java的许多教程之一。

答案 2 :(得分:1)

String yn = console.next();
if(String yn = "y"){
  • 您宣布yn两次。这是不允许的。只需使用yn,无需再次表示String,您已经这样做了。
  • 您正在使用分配运算符=而不是比较运算符==。在任何情况下,Java中的字符串都不是使用==进行比较,而是使用equals方法if(yn.equals("y"))

    for (i = 1; i <= number; i++)

  • 我没有看到相应的错误消息,但仍未在任何地方声明number