我收到一个错误< =说它是一个无效的AssignmentOperator +我的代码看起来很糟糕我认为

时间:2014-06-23 22:16:23

标签: java eclipse assignment-operator

所以我被困了很多:

package test;

import javax.swing.*;
import java.util.Random;
import java.util.Scanner;

public class GuessGame {
public static void main(String[] args) 
{
    Scanner keys = new Scanner(System.in);
    System.out.println("Hello! Would you like to play?");
    String choice = keys.next();
    for (choice.equals("y");  choice.equals("yes");)
    {
        System.out.println("Awesome!");
        choice = "";

        Random bill = new Random();
        int j;
        j = bill.nextInt(50);

        System.out.println("Guess what the number I'm thinking is ");
            int number;
            number = keys.nextInt();
                for (number <= (j + 10); number >= (j - 10);)
                    {
                        System.out.println("Warm!");
                        number = 0;
                        number = keys.nextInt();
                    }
                for (number = (j + 5); number == (j - 10);)
                    {
                        System.out.println("Hot!!!");
                        number = 0;
                        number = keys.nextInt();
                    }


    }
    for (choice.equals("n"); choice.equals("no");)
    {
        System.out.println("okay");
        keys.close();
        System.exit(0);
    }
}
}

与&#34; for(number&lt; =(j + 10); number&gt; =(j - 10);)&#34;,我在&#34;&lt; =&#34;上收到错误,而且我不知道如何修改它。同样,我不确定我是否应该使用for语句。请帮助我理解我的错误,如果有更好的替代品而不是。

谢谢!

2 个答案:

答案 0 :(得分:2)

这是因为for statement的第一个参数用于变量的initialization,因此会给您一个错误。

<强>文件:

for (initialization; termination;increment) {
   statement(s)
}

<强>问题:

for (number <= (j + 10); number >= (j - 10);)

<强>溶液

如果您要检查两个变量

,请使用if statement
  if(number <= (j + 10) &&  number >= (j - 10))

答案 1 :(得分:0)

尝试使用if statements替换每个for循环:

if (choice.equals("y") || choice.equals("yes") { 

...

    if (number <= (j + 5) && number >= (j - 5)) { ... } // I assume this is what you meant here
    else if (number <= (j + 10) && number >= (j - 10)) { ... }

...

}
else {
    System.out.println("okay");
    keys.close();
    System.exit(0);
}

请注意,您首先需要限制性最强的if语句,因此我更改了您要检查的部分的顺序是否在某个范围内。通过这种方式,它可以检查您是否“热”&#34;在检查你是否'温暖&#34;之前(因为热是温暖的)。

另请注意else if语句用于检查&#34; warm&#34;意味着如果你很热,它就不会费心检查你是否温暖并且两次更新你的输出。

我也取代了&#34; no&#34;只有一个else语句的情况,它将捕获任何不是&#34; y&#34;或&#34;是&#34;。