Назначать истинное или ложное значение один за другим

1 Michael Gamage [2013-05-10 15:54:00]

У меня вопрос из моего задания, я не могу найти решение для этого.

Этот массив объявляет 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;
}

Как использовать вышеуказанную структуру для присваивания значений true и false один за другим?

java


6 ответов


4 Решение flavian [2013-05-10 15:56:00]

Чтобы строго заполнить пробелы по вашему требованию:

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

2 Keppil [2013-05-10 15:56:00]

Вы можете использовать modulo operator % для этого, проверяя, является ли индекс четным. Это приведет к тому, что правая часть задания будет чередоваться между true и false.

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

1 Juvanis [2013-05-10 16:04:00]

Вы можете просто использовать переключая логическую переменный:

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

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

Обозначим, что вы можете изменить порядок значений true/false, изменив начальное значение переменной.


0 Pieter VDE [2013-05-10 16:07:00]

Здесь решение, начиная с первого элемента массива, имеющего значение true:

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

Объяснение:

Выражение (plantingSpace % 2 == 0) проверяет, равна ли нулю остатка деления plantingSpace на 2 (= modulo).

Если это (означает, что plantingSpace равно), соответствующее значение в массиве будет установлено в true.
Если это не так (означает, что plantingSpace неравномерно), соответствующее значение будет установлено на false.


0 anshulkatta [2013-05-10 16:02:00]

легкий парень... сделайте так

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

           ++plantingSpace;
        }

Здесь я использовал тернарный оператор, который проверяет условие, а затем в соответствии с ним он возвращает false или true, затем он получает значение.

(plantingSpace% 2 == 0)? true: false


0 jschabs [2013-05-10 15:56:00]

Проверьте, является ли plantingSpace четным или нечетным каждый цикл и соответствующим образом задайте логическое значение true/false.