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
滚动20面骰子n次,并在数组中打印值-java_Java_Arrays_Dice - Fatal编程技术网

滚动20面骰子n次,并在数组中打印值-java

滚动20面骰子n次,并在数组中打印值-java,java,arrays,dice,Java,Arrays,Dice,我正在尝试制作一个Java程序,使n个随机值在1-20之间,并将它们放入一个数组中。到目前为止,我的计划是: public class bias{ public static void main(String[] as){ for (int n = 10; 0 < n; n--){ int[] values; values = new int[n]; int b = (int)(Math.ran

我正在尝试制作一个Java程序,使n个随机值在1-20之间,并将它们放入一个数组中。到目前为止,我的计划是:

public class bias{
    public static void main(String[] as){
        for (int n = 10; 0 < n; n--){
            int[] values;
            values = new int[n];
            int b = (int)(Math.random()*20) + 1;
            values[n--] = b;
        }
        System.out.println(values.length);      
    }
}
公共阶级偏见{
公共静态void main(字符串[]as){
对于(int n=10;0
但我编译它时会出错:

C:\javas>javac bias.java
bias.java:9 error: cannot find symbol
              System.out.printLn<values.length>;
  symbol: variable values 
  location: class bias
1 error
C:\javas>javac bias.java
bias.java:9错误:找不到符号
System.out.printLn;
符号:变量值
地点:阶级偏见
1错误

我似乎无法理解和调试,我的问题是什么应位于for循环的外侧

你喜欢下面吗

 int[] values = new int[10];    
 for (int n = 10; 0 < n; n--){           
           int b = (int)(Math.random()*20) + 1;
           values[n] =b;
 }
int[]值=新的int[10];
对于(int n=10;0

删除
int[]值;值=新整数[n]来自for循环。它将为每次迭代创建新数组。

int[]值应位于for循环的外侧

你喜欢下面吗

 int[] values = new int[10];    
 for (int n = 10; 0 < n; n--){           
           int b = (int)(Math.random()*20) + 1;
           values[n] =b;
 }
int[]值=新的int[10];
对于(int n=10;0

删除
int[]值;值=新整数[n]来自for循环。它将为每次迭代创建新数组。

您在
for
循环中声明了您的values对象,因此它仅在循环中可用。 将其移出循环

我建议看一下变量作用域:

我想你想要的是:

int[] values = new int[10];    
for (int n = 10; 0 < n; n--){           
    values[n] = (int)(Math.random()*20) + 1;
} 
System.out.println(values.length);  
int[]值=新的int[10];
对于(int n=10;0
您在
for
循环中声明了values对象,因此它仅在循环中可用。 将其移出循环

我建议看一下变量作用域:

我想你想要的是:

int[] values = new int[10];    
for (int n = 10; 0 < n; n--){           
    values[n] = (int)(Math.random()*20) + 1;
} 
System.out.println(values.length);  
int[]值=新的int[10];
对于(int n=10;0
当您试图打印数组的长度时,您的
值就超出了范围。它的范围仅限于
代码块的

您的
数组在尝试打印其长度时超出范围。其范围仅限于
代码块的

在循环外声明变量


因为您已经声明了varible
int[]值在循环内,因此此变量在循环内具有作用域,在循环外不可见,因此在循环外声明它,使其作用域成为完整程序。

在循环外声明变量


因为您已经声明了varible
int[]值在循环内,因此此变量在循环内具有作用域,在循环外不可见,因此在循环外声明它,使其作用域成为完整程序。

以下是您需要执行的解决方案从控制台读取数字n 创建一个这样大小的数组并继续向其中添加数字。 然后,您可以在数组上迭代以获取所有值

public class bias{
    public static void main(String[] as){

        DataInputStream dis=new DataInputStream (System.in);
        System.out.println ("Enter number n: ");
        String s1=dis.readLine ();
        int num = int n1=Integer.parseInt (s1);
        int[] values = new int[num];
        for (int n = 0; n < num; n++){
            int b = (int)(Math.random()*20) + 1;
            values[n] = b;
        }
        System.out.println(values.length);      
        for (int n = 0; n < num; n++){
            System.out.println(values[n]);      
        }
    }
}
公共阶级偏见{
公共静态void main(字符串[]as){
DataInputStream dis=新的DataInputStream(System.in);
System.out.println(“输入编号n:”);
字符串s1=dis.readLine();
int num=int n1=Integer.parseInt(s1);
int[]值=新的int[num];
对于(int n=0;n
以下是您需要执行的解决方案从控制台读取数字n 创建一个这样大小的数组并继续向其中添加数字。 然后,您可以在数组上迭代以获取所有值

public class bias{
    public static void main(String[] as){

        DataInputStream dis=new DataInputStream (System.in);
        System.out.println ("Enter number n: ");
        String s1=dis.readLine ();
        int num = int n1=Integer.parseInt (s1);
        int[] values = new int[num];
        for (int n = 0; n < num; n++){
            int b = (int)(Math.random()*20) + 1;
            values[n] = b;
        }
        System.out.println(values.length);      
        for (int n = 0; n < num; n++){
            System.out.println(values[n]);      
        }
    }
}
公共阶级偏见{
公共静态void main(字符串[]as){
DataInputStream dis=新的DataInputStream(System.in);
System.out.println(“输入编号n:”);
字符串s1=dis.readLine();
int num=int n1=Integer.parseInt(s1);
int[]值=新的int[num];
对于(int n=0;n
你的意思是:
值[n]=b
?你的意思是:
值[n]=b