1

我的作业中有一个问题,我找不到解决方案..

这个数组声明了 12 个变量。

boolean[] rowOfRotatoes = new boolean[12];

现在我必须一个接一个地分配真假值,

rowOfRotatoes[0] = true;
rowOfRotatoes[1] = false;
rowOfRotatoes[2] = true;
rowOfRotatoes[3] = false;
rowOfRotatoes[4] = true;
....
rowOfRotatoes[9] = true;
rowOfRotatoes[10] = false;
rowOfRotatoes[11] = true;

但我必须使用循环来做到这一点!

他们给了我一个填补空白的结构..

int plantingSpace = 0;
while(plantingSpace < 12) {

   rowOfRotatoes[plantingSpace] = <Fill this space 1> <Fill this space 2> <Fill this space 3> == 0;

   ++plantingSpace;
}

如何使用上述结构依次分配真假值?

4

6 回答 6

4

根据您的要求严格填充空格:

int plantingSpace = 0;
while (plantingSpace < 12) {  
   rowOfRotatoes[plantingSpace] = plantingSpace % 2 == 0;   
   ++plantingSpace;
}
于 2013-05-10T12:56:41.557 回答
2

您可以使用模运算符%来执行此操作,方法是检查索引是否为偶数。这将导致分配的右侧在true和之间交替false

int plantingSpace = 0;
while(plantingSpace < 12) {
    rowOfRotatoes[plantingSpace] = plantingSpace % 2 == 0;
    ++plantingSpace;
}
于 2013-05-10T12:56:20.123 回答
1

您可以简单地使用切换布尔变量:

boolean[] rowOfRotatoes = new boolean[12];
int plantingSpace = 0;
boolean toggler = true;

while (plantingSpace < rowOfRotatoes.length) {
    rowOfRotatoes[plantingSpace++] = toggler;
    toggler = !toggler;
}

表示您可以通过更改变量的初始值来更改真/假条目的顺序。

于 2013-05-10T13:04:18.287 回答
0

容易的孩子...这样做

        Boolean rowOfRotatoes[]=new Boolean[13];
        int plantingSpace = 0;
        while(plantingSpace < 12) 
        {
           boolean value= (plantingSpace %2==0)?true:false; 
           rowOfRotatoes[plantingSpace] = value;

           ++plantingSpace;
        }

这里我使用了三元运算符,它检查条件然后根据它返回 false 或 true ,然后它进入值。

(种植空间 %2==0)?true:false

于 2013-05-10T13:02:35.280 回答
0

检查plantingSpace每个循环是偶数还是奇数,并相应地设置布尔值真/假。

于 2013-05-10T12:56:28.210 回答
0

这是一个解决方案,从具有trueas 值的数组的第一个元素开始:

int plantingSpace = 0;
while(plantingSpace < 12) {
   rowOfRotatoes[plantingSpace] = (plantingSpace % 2 == 0);
   ++plantingSpace;
}

解释:

该表达式(plantingSpace % 2 == 0)检查plantingSpace除以 2(= 模)的余数是否等于 0。

如果是(意思plantingSpace是偶数),则数组中的对应值将被设置为true
如果不是(意思plantingSpace是不均匀),对应的值将被设置为false

于 2013-05-10T13:07:19.633 回答