Java数组构建求助:实现奇数列存1、偶数列存0
解决你的Java二维数组赋值问题
嘿,这个小问题很容易搞定!我看你已经写了大部分代码,只是逻辑判断有点小偏差,而且else块没写完。咱们一步步来修正:
首先明确需求:奇数列存1,偶数列存0。这里要注意Java数组的索引是从0开始的,得先理清“列数”对应的索引逻辑:
- 如果你的“奇数列”是指日常计数的第1、3、5列(从1开始数),那对应的数组索引是0、2、4(偶数索引),这些位置要存1;
- 如果你的“奇数列”是指索引为奇数的列(比如j=1、3),那这些位置存1,偶数索引存0。
看你当前的代码,你写了if(x%2 == 0){a[i][j] = 0;},这说明你可能把索引和实际列数搞反了。咱们先按照“日常计数的奇数列存1”来修正,同时补全代码:
修正后的完整代码
import java.util.Scanner; public class TestArray2 { public static void main(String[] args){ Scanner input = new Scanner(System.in); int [][] a = new int[5][5]; for(int i=0; i<a.length;i++){ for(int j=0;j<a[0].length;j++){ // 奇数列(从1开始计数)对应索引j为偶数(0、2、4),赋值1 if(j % 2 == 0){ a[i][j] = 1; } else { // 偶数列(从1开始计数)对应索引j为奇数(1、3),赋值0 a[i][j] = 0; } } } // 新增打印代码,验证数组结果是否符合预期 for(int i=0; i<a.length;i++){ for(int j=0;j<a[0].length;j++){ System.out.print(a[i][j] + " "); } System.out.println(); } } }
关键修正点
- 调整了判断逻辑:原来的
if条件把值设反了,现在改成偶数索引(对应第1、3、5列)存1,奇数索引存0; - 补全了
else块的代码,给偶数列赋值0; - 额外加了一段打印代码,方便你直观验证数组的结果是否符合需求。
如果你的“奇数列”是指索引为奇数的列(比如j=1、3),那只需要把判断条件反过来即可:
if(j % 2 != 0){ a[i][j] = 1; } else { a[i][j] = 0; }
这样就能完美实现你的需求啦!
内容的提问来源于stack exchange,提问作者Gin Oakain
相关产品推荐
相关产品推荐

