我必须创建一个程序,用户可以在其中输入所需的总和,然后滚动两个六面骰子,直到它们的总和是所需的总和。我知道a)我必须使用Scanner,因为它是一个交互式程序。 b)我必须使用不定循环来解决问题,包括使用随机数。 c)我不指望你给我答案,就像我只是复制和粘贴一样。我只想指导我做什么,以便我的代码实际编译。
这是我的代码:
import java.util.*;
public class Game {
public static void main(String[] args) {
System.out.println("Try rolling two six-sided dices");
System.out.println("until their sum is your");
System.out.println("desired sum.");
System.out.println();
Scanner console = new Scanner (System.in);
Random r = new Random();
int sum = 0;
int tries = 0;
While (sum != number) {
int roll1 = rand.nextInt(6) +1;
int roll2 = rand.nextInt(6) +1;
sum = roll1 + roll2;
tries++;
}
}
System.out.println("Desired dice sum: ");
int number = console.nextInt();
*我一直收到这3个编译错误:
Game.java:21:';'期待的 (总和!=数字){ ^ Game.java:29:预期
System.out.println(“所需的骰子总和: “); ^ Game.java:29:非法启动类型
System.out.println(“所需的骰子总和: “); ^ 3错误
修改
还有3个编译错误
import java.util.*;
public class Game {
public static void main(String[] args) {
System.out.println("Try rolling two six-sided dice");
System.out.println("until their sum is your");
System.out.println("desired sum.");
System.out.println();
Scanner console = new Scanner (System.in);
Random r = new Random();
System.out.println("Desired dice sum: ");
int number = console.nextInt();
int sum = 0;
int tries = 0;
while (sum != number) {
int roll1 = rand.nextInt(6) +1;
int roll2 = rand.nextInt(6) +1;
sum = roll1 + roll2;
tries++;
}
}
}
@马特:
这是我应该拥有的输出,抱歉不清楚:
Desired dice sum: 9
4 and 3 = 7
3 and 5 = 8
5 and 6 = 11
5 and 6 = 11
1 and 5 = 6
6 and 3 = 9
答案 0 :(得分:5)
为什么你有:
System.out.println("Desired dice sum: ");
int number = console.nextInt();
主要的一面?把它放回去。
此外,虽然与将其更改为while时不同。
回应您的新问题:
int roll1 = rand.nextInt(6) +1;
应该是这样的:
int roll1 = r.nextInt(6) + 1;
因为你为随机而不是变量rand做变量r。
答案 1 :(得分:2)
应该是while
,而不是While
。
您在代码末尾缺少右括号(}
)。
(当前)最后两行需要在方法内部。
您尚未正确声明名为number
的变量。这与问题#3有关。
您首先调用随机生成器r
,但稍后尝试通过rand
引用它。
尝试这样的事情(未经测试):
import java.util.*;
public class Game {
public static void main(String[] args) {
System.out.println("Try rolling two six-sided dices");
System.out.println("until their sum is your");
System.out.println("desired sum.");
System.out.println();
System.out.println("Desired dice sum: ");
Scanner console = new Scanner (System.in);
int number = console.nextInt();
Random rand = new Random();
int sum = 0;
int tries = 0;
while (sum != number) {
int roll1 = rand.nextInt(6) +1;
int roll2 = rand.nextInt(6) +1;
sum = roll1 + roll2;
tries++;
System.out.println("Found sum: " + sum);
}
System.out.println("Done in " + tries + " tries");
}
}
答案 2 :(得分:0)
最后两行:
System.out.println("Desired dice sum: ");
int number = console.nextInt();
在你的主人之外。他们需要在主要的。如果您希望数字成为您班级的成员,请将其声明为您的主要成员,并在main中初始化,例如:
private int number;
public static void main(String args[])
{
...
number = console.nextInt();
...
}
此外,您无法在方法之外创建System.out.println。把它放在主。