2014-11-02 39 views
0

如果我不清楚,我表示歉意。我是编程新手。所以我们可以说我有一个char[10][10]。有两个+字符我想要间隔分配,例如i[0][0]i[5][7]Y,其余的有N。如果可能的话,我该怎么做?我一直试图弄清楚6个小时以上。Java 2D阵列以不同的时间间隔分配不同的值

+0

嵌套的for循环与一对夫妇,如果块什么,你应该罚款。 – 2014-11-02 01:04:15

回答

0

一个可能的解决办法是有一个“对”禁止通过行去和另一个人的“块通过专栏。它可能类似于

char[] arr= {'Y','N'}; 
int counter = 0; // <- these are optional depending on what you choose below 
for(int j=0;j<10;j++){ 
    for(int k=0;k<10;k++){ 
     // i[j][k]= here you should assign the value 
     counter++; 
    } 
} 

分配值的方式取决于您想要执行的操作。如果你想让它随机生成,你可以做一些类似i[j][k]= arr[(int)(Math.random()*2)]的事情,或者如果你想让它在Y和N之间交替,你可以有一个计数器变量,并分配i[j][k]= arr[counter%2]。如果您想将前半部分分配给'Y',将另一半分配给'N'i[j][k]= (counter<=50)?'Y':'N';。你如果问具体情况将i[j][k]= (j<=5 && k<=7)?'Y':'N';这实际上在很大程度上取决于你想要做

0

这可以用循环完成。

for(int i = 0; i < 5; i++){ 
    for(int j = 0; j < 7; j++){ 
     i[i][j] = 'N'; 
    } 
    for(int j = 7; j < 10; j++){ 
     i[i][j] = 'Y'; 
    } 
} 
for(int i = 5; i < 10; i++){ 
    for(int j = 0; j < 10; j++){ 
     i[i][j] = 'Y'; 
    } 
} 
+0

虽然答案是一个实际的答案。给出一点解释是个好主意。这个问题确实表示“如果我不清楚,我表示歉意。我是编程新手' – ptierno 2014-11-02 01:28:11

+0

这是一个好点 - 我想如果是我,我宁愿只看到一个简单的例子。 – Alex 2014-11-03 18:25:01

-2

尝试使用for-loops和if-else。既然你正在寻找的是/否类型的值,我只是用boolean类型在我的例子

boolean[][] arr = new boolean[10][10]; 
for(int i = 0; i < arr.length; i++) { 
    for(int j = 0; j < arr[i].length; j++) { 
     if(i < 6 && j < 8) 
      arr[i][j] = true; 
     else 
      arr[i][j] = false; 
    } 
} 
+0

它设置arr [5] [8] = false。 ARR [5] [9] = FALSE。 – 2014-11-02 01:11:31

+1

这个'for(int i:arr)'应该如何工作?该数组包含'boolean'而不是'int'。 – Tom 2014-11-02 01:15:33

0
char[][] theArray = new char[10][10] 
upToX = 5; // limit for rows 
upToY = 7; // limit for columns 

for(int i = 0; i < 10; i++){ 
    for(int j = 0; j< 10; j++){ 
     if((i+1)*(j+1) <= (upToX+1)*(upToY+1)){ 
     theArray[i][j] = 'Y'; 
     } 
     else{ 
     theArray[i][j] = 'N'; 
     } 
    } 
} 
相关问题