所以我被困了很多:
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语句。请帮助我理解我的错误,如果有更好的替代品而不是。
谢谢!
答案 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;。