【问题标题】:If I run my array program the 0 shows up how can i remove it?如果我运行我的数组程序,0 会显示我如何删除它?
【发布时间】:2020-03-13 07:19:25
【问题描述】:
int[][] grades = new int [3][4];
grades[0][0] = 89;
grades[0][1] = 92;
grades[0][2] = 96;
grades[0][3] = 87;
grades[1][0] = 83;
grades[1][1] = 85;
grades[1][2] = 81;
grades[2][0] = 88;
grades[2][1] = 90;
grades[2][2] = 93;
grades[2][3] = 97;
int j ;
for(int i = 0 ; i < 3  ; i++ ){
    for(j = 0 ; j < 4 ; j++){
        System.out.print(grades[i][j] +" ");
    }
    System.out.println();
}

如果我运行程序,结果将是:

89 92 96 87

83 85 81 0

88 90 93 97

如何删除 0?

【问题讨论】:

  • 您要删除什么?您的矩阵中有一个 0,您可以在 for 循环中使用 if 语句检查您想要省略的索引。

标签: java arrays for-loop if-statement math


【解决方案1】:

你可以省略矩阵值为0的索引:

for(int i = 0 ; i < 3  ; i++ ){
    for(j = 0 ; j < 4 ; j++){
        if(i == 1 && j == 3) continue;
        System.out.print(grades[i][j] +" ");
    }
    System.out.println();
}

或跳过所有零值:

for(int i = 0 ; i < 3  ; i++ ){
    for(j = 0 ; j < 4 ; j++){
        if(grades[i][j] == 0) continue;
        System.out.print(grades[i][j] +" ");
    }
    System.out.println();
}

【讨论】:

    【解决方案2】:

    grades[1][3] 提供一个值

    grades[1][3] = 42; /* The answer to the ultimate question; 7.5 million year optimization */
    

    或者跳过那个索引,

    for(j = 0 ; j < 4 ; j++){
        if (i == 1 && j == 3) { 
            continue; 
        }
        System.out.print(grades[i][j] +" ");
    }
    

    【讨论】:

      【解决方案3】:

      grades[1][3] 的默认值为 0,因为您的矩阵是 int 类型。

      【讨论】:

        【解决方案4】:

        if then 语句将是 Grades [1][3] 的最佳方式,它只是默认为 0,因为没有为它设置任何值。您需要指定要跳过零索引。

         class Main {
          public static void main(String[] args) {
        
        
           int[][] grades = new int [3][4];
        
        grades[0][0] = 89;
        grades[0][1] = 92;
        grades[0][2] = 96;
        grades[0][3] = 87;
        grades[1][0] = 83;
        grades[1][1] = 85;
        grades[1][2] = 81;
        grades[1][3] = 0;
        grades[2][0] = 88;
        grades[2][1] = 90;
        grades[2][2] = 93;
        grades[2][3] = 97;
        int j ;
        for(int i = 0 ; i < 3  ; i++ ){
            for(j = 0 ; j < 4 ; j++){
                        if(grades[i][j] == 0) continue;
        
                System.out.print(grades[i][j] +" ");
            }
            System.out.println();
        }
          }  
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-12-29
          • 1970-01-01
          • 1970-01-01
          • 2018-10-27
          • 1970-01-01
          相关资源
          最近更新 更多