繁体   English   中英

Java for循环和2D数组

[英]Java for loops and 2D arrays

这段代码应该很简单,但根本无法使用。 它什么也没做。 据我了解,它应该打印出10到10的21以下的随机数网格。

import java.util.Random;
public class Map {
    static Random rnd = new Random();
    public static int coords[][] = new int[10][10];

    public static void main(String[] args){
        System.out.println("dastardly");
        Map.generate();
        Map.show();
    }

    public static void show() {
        for(int i = 0; i >= 10; i++){
            for(int j = 0; j >= 10; j++){
                System.out.print(coords[i][j]);
            }
            System.out.println("");
        }
    }

    public static void generate() { 
        for(int i = 0; i >= 10; i++){
            for(int j = 0; j >= 10; j++){
                coords[i][j] = rnd.nextInt(21);
            }
        }
    }
}

谁能告诉我为什么它不起作用?

循环的终止条件是错误的:

j >= 10

应该

j < 10

for循环由三部分组成:

  • 初始化
  • 进入循环并继续循环的条件
  • 发布动作,在每次迭代之后完成。

因此,此循环(以及其他循环):

for(int i = 0; i >= 10; i++){

无法正常工作,应更改为:

for(int i = 0; i < 10; i++){

如果您在记住它时遇到麻烦,可以将for循环视为while循环:

int i = 0;
while (i < 10) {
  // instructions
  i++;
}

更改

i >= 10; i < 10;

j >= 10; j < 10;

工作代码:

变化 :

i> = 10i <10

j> = 10j <10

import java.util.*;
import java.lang.*;
import java.io.*;


class Map 
{
     static Random rnd = new Random();
    public static int coords[][] = new int[10][10];
    public static void main (String[] args) throws java.lang.Exception
    {
        System.out.println("dastardly");
        Map .generate();
        Map .show();
    }
    public static void show() {
        for(int i = 0; i < 10; i++){
            for(int j = 0; j < 10; j++){
                System.out.print(coords[i][j]);
            }
            System.out.println("");
        }
    }

    public static void generate() { 
        for(int i = 0; i <10; i++){
            for(int j = 0; j < 10; j++){
                coords[i][j] = rnd.nextInt(21);
            }
        }
    }
}

输出:

971756192091315
181318132191661920
100141331158018
66131218111611183
12112141501721516
27361013751614

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM