有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java i variable无法解析为变量

import java.util.Scanner;

public class high{
    public static void main(String args[])
    {
        int[][]arr1={{10,20,40}, {5,40,60}};
        int[][]arr2={{8,40,20} , {5,4,10}};             
        int[][]result={{0,0,0} ,  {0,0,0}}; 

        for(int i=0;i<arr1.length;i++){
            for(int j=0;j<arr[i];j++){
                resilt[i][j]=arr1[i][j]+arr2[i][j]; 
            }    
        }   
 
        for(i=0;i<arr1.length;i++){
            for(j=0;j<arr1[i];j++){
             System.out.print(result[i][j]);
            }
        }
        System.out.println(" ");
        }
    }
}

当执行它时,我的变量不能被解析为变量,这里有人能进来吗


共 (1) 个答案

  1. # 1 楼答案

    问题
    这是你的第一个循环

    for(int i=0;i<arr1.length;i++){ // i declaration
        for(int j=0;j<arr[i];j++){ // j declaration
            resilt[i][j]=arr1[i][j]+arr2[i][j]; 
        } // j end of life
    } // i end of life
    

    在这个循环之后,i和j都不再“存在”
    编译器不认为这些名称是有效的,因为它们在for块中声明。 这是你的下一个循环

    for(i=0;i<arr1.length;i++){
        for(j=0;j<arr1[i];j++){
            System.out.print(result[i][j]);
        }
    }
    

    i和j都不存在,并抛出编译器错误,因为它们无法解析为变量

    解决方案
    您需要声明这些新变量

    // Second loop
    for(int i=0;i<arr1.length;i++){
        for(int j=0;j<arr1[i];j++){
            System.out.print(result[i][j]);
        }
    }
    

    也可以在循环之前声明这两个变量,如

    int i,j;
    
    for(i=0; ...) {...} // First loop
    for(i=0; ...) {...} // Second loop