Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java豆机_Java_Arrays - Fatal编程技术网

Java豆机

Java豆机,java,arrays,Java,Arrays,以下是我要完成的任务: 编写一个程序来激发 你的程序应该 提示用户输入 球和球中的槽数 机器。模拟每个物体的下落 通过打印球的路径 前 输入球数:5 输入插槽数:7 LRLRRLRLLLLLRRLLR LRLLRRRRRRLRRL\u0 __00 以下是我目前的代码: import javax.swing.JOptionPane; public static void main(String[] args) { int balls=0;

以下是我要完成的任务:

编写一个程序来激发 你的程序应该 提示用户输入 球和球中的槽数 机器。模拟每个物体的下落 通过打印球的路径


输入球数:5
输入插槽数:7


LRL
RRLRLLL
LLRRLLR
LRLLRRR
RRRLRRL
\u0
__0
0

以下是我目前的代码:

import javax.swing.JOptionPane;        
public static void main(String[] args) {
            int balls=0;
            int slots=0;
            char [] direction= new char [slots];
            int slot=0;
            int i=0;
            int path=0;

            balls= Integer.parseInt(JOptionPane.showInputDialog("Enter" +
                    " the number of balls to be dropped:"));
            slots= Integer.parseInt (JOptionPane.showInputDialog("Enter " +
                    "the number of slots:"));

            for (int j=1;j<=balls;j++){
                while(i<slots){
                    path= (int)(Math.random()*100);
                    if (path <50){
                        direction [slots]='L';
                    }
                    else{
                        direction [slots]='R';
                    }
                i++;
                slot++;
            }
            System.out.println("The pathway is" +direction[0]+direction[1]+direction[2]+direction[3]+direction[4]);

       }
    }
import javax.swing.JOptionPane;
公共静态void main(字符串[]args){
int=0;
int插槽=0;
字符[]方向=新字符[插槽];
int槽=0;
int i=0;
int路径=0;
balls=Integer.parseInt(JOptionPane.showInputDialog(“回车”)+
“要丢弃的球数:”);
slots=Integer.parseInt(JOptionPane.showInputDialog(“输入”)+
“插槽数量:”);

对于(int j=1;j首先,我在
方向[slots]='L';
(或
'R'
)行上获得了一致的
阵列索引边界外异常
。这是因为
方向
总是长度为0,因为当
插槽
为0时,将其初始化为
插槽
。移动行

char [] direction= new char [slots];
输入到
插槽之后

接下来,您总是将“L”或“R”分配到数组结束后的位置。这是我获得
ArrayIndexOutOfBoundsException
的另一个原因。将分配更改为

direction[i] = 'L'; // or 'R'
接下来,在
while
循环之后,您不会重置
i
。因此,仅为第一个球计算路径,然后对所有其他球重复使用路径。我会将其改为
for
循环,如下所示:

for (i = 0; i < slots; i++) {
    // your code here (make sure you don't change i inside the loop)
}
(i=0;i{ //这里是您的代码(确保在循环中不更改i) }
最后,正如其他人所说,您应该使用循环来打印路径。您知道
方向
数组的长度(如果您不知道,它是
方向.长度
),因此您可以通过循环来打印每个字母


一旦您进行了这些更改,您的程序应该可以运行(编辑:,但它不跟踪每个球最终进入的位置)。它仍有一些改进的空间,但找到这些东西是乐趣的一部分,不是吗?

好吧,首先,我得到了一个一致的
阵列索引边界外感知
方向[slots]='L';
(或
'R'
)。这是因为
方向
的长度始终为0,因为当
插槽
为0时,您将其初始化为
插槽
。请移动该行

char [] direction= new char [slots];
输入到
插槽之后

接下来,您总是将“L”或“R”分配到数组结束后的位置。这是我获得
ArrayIndexOutOfBoundsException
的另一个原因。将分配更改为

direction[i] = 'L'; // or 'R'
接下来,在
while
循环之后,您不会重置
i
。因此,仅为第一个球计算路径,然后对所有其他球重复使用路径。我会将其改为
for
循环,如下所示:

for (i = 0; i < slots; i++) {
    // your code here (make sure you don't change i inside the loop)
}
(i=0;i{ //这里是您的代码(确保在循环中不更改i) }
最后,正如其他人所说,您应该使用循环来打印路径。您知道
方向
数组的长度(如果您不知道,它是
方向.长度
),因此您可以通过循环来打印每个字母

一旦你做了这些更改,你的程序应该可以运行(编辑:,除了它不跟踪每个球最后进入哪个位置)。它仍然有一些改进的空间,但找到这些东西是乐趣的一部分,不是吗

在我的最后一行代码中,我试图打印路径,我必须基本上猜测用户选择的插槽数量。有更好的打印方法吗

使用for循环和
System.out.print()

如何打印用户在如上所示的模式中输入的数字“balls”

对于每个插槽,您需要记录在该插槽中结束的球数,以及任何插槽的最大值。给定这两个值,您可以在每个插槽上循环,并使用嵌套循环打印适当次数的“\u1”或“0”

我的代码还有其他问题吗

您似乎只打印最后一个落下的球的路径,而不是每个球的路径,但这可能只是因为您的缩进不清晰。发布格式正确的完整代码

您的示例输出似乎是从控制台读取输入,而不是使用swing

您声明变量太早。最好在首次使用时声明变量,如果变量没有更改,请将其标记为
final
。如果您有:

final int slots= Integer.parseInt (...
而不是

int slots = 0;
...
slots= Integer.parseInt (...
那么至少有一个bug会被编译器捕获

在我的最后一行代码中,我试图打印路径,我必须基本上猜测用户选择的插槽数量。有更好的打印方法吗

使用for循环和
System.out.print()

如何打印用户在如上所示的模式中输入的数字“balls”

对于每个插槽,您需要记录在该插槽中结束的球数,以及任何插槽的最大值。给定这两个值,您可以在每个插槽上循环,并使用嵌套循环打印适当次数的“\u1”或“0”

我的代码还有其他问题吗

您似乎只打印最后一个落下的球的路径,而不是每个球的路径,但这可能只是因为您的缩进不清晰。发布格式正确的完整代码<