蓝色 J 显示它是 运行,但不会打开结果 window
Blue J shows it is running, but will not open result window
我一直在 运行 编写一个程序来模拟通过 7 步桥所需的步数。生成一个随机数以确定此人是向前还是向后迈出一步。本次模拟运行1000次。在此之后打印出通过的平均步数,以及它所花费的最大步数。
这样,又是运行1000次。它编译得很好。我的问题是,当我转到 运行 时,(在 BlueJ 上)栏显示它是 运行ning 但输出 window 没有出现。怎么了? (很可能是我没有注意到的非常明显的事情。)
import java.util.Random;
public class Prog214a
{
public static void main (String[] args)
{
Random rn = new Random();
for (int m = 1; m <= 20; m++)
{
int max = 0;
for (int c = 1; c <= 1000; c++)
{
int s = 0;
int sn = 0;
int sum = 0;
while (s < 7)
{
int ans = rn.nextInt(1) + 0;
if (ans == 1) {
s = s + 1
}
else {
s = s - 1;
}
sn++;
}
sum = sum + sn;
if (sn > max) {
max = sn;
}
if (c == 1000) {
double avg = sum / c;
System.out.print(avg);
System.out.print(" " + max);
}
}
}
}
}
至少有一个问题。这里:
int ans = rn.nextInt(1) + 0;
if (ans == 1){
s = s + 1;
}
else {
s = s -1;
}
rn.nextInt(1)
只能 return 0,所以 ans
将是 0。你没有警卫来确保 s
不会变成负数,所以它会 -并且它仍然小于 7,这意味着 while 循环(条件 s < 7
)会持续 long 时间(具体来说,直到 s
返回到再次为正数)。
我一直在 运行 编写一个程序来模拟通过 7 步桥所需的步数。生成一个随机数以确定此人是向前还是向后迈出一步。本次模拟运行1000次。在此之后打印出通过的平均步数,以及它所花费的最大步数。
这样,又是运行1000次。它编译得很好。我的问题是,当我转到 运行 时,(在 BlueJ 上)栏显示它是 运行ning 但输出 window 没有出现。怎么了? (很可能是我没有注意到的非常明显的事情。)
import java.util.Random;
public class Prog214a
{
public static void main (String[] args)
{
Random rn = new Random();
for (int m = 1; m <= 20; m++)
{
int max = 0;
for (int c = 1; c <= 1000; c++)
{
int s = 0;
int sn = 0;
int sum = 0;
while (s < 7)
{
int ans = rn.nextInt(1) + 0;
if (ans == 1) {
s = s + 1
}
else {
s = s - 1;
}
sn++;
}
sum = sum + sn;
if (sn > max) {
max = sn;
}
if (c == 1000) {
double avg = sum / c;
System.out.print(avg);
System.out.print(" " + max);
}
}
}
}
}
至少有一个问题。这里:
int ans = rn.nextInt(1) + 0;
if (ans == 1){
s = s + 1;
}
else {
s = s -1;
}
rn.nextInt(1)
只能 return 0,所以 ans
将是 0。你没有警卫来确保 s
不会变成负数,所以它会 -并且它仍然小于 7,这意味着 while 循环(条件 s < 7
)会持续 long 时间(具体来说,直到 s
返回到再次为正数)。