Использование AND ИЛИ в операторе IF двумерного массива в порядке суммирования значения строки - PullRequest
0 голосов
/ 18 февраля 2020

Я хотел бы суммировать значение первой строки двумерного массива 4x5 и поместить в переменную int rowTotal1. Каждый объект в массиве имеет как значение, так и имя. Если сумма значений превышает 21 для строки И, если у какой-либо из ячеек в строке есть какое-либо из этих четырех имен («AA», «AB», «A C», «AD»), я бы хотел хотел бы вычесть 10 из общей суммы строки. Ниже приведено то, что я имею до сих пор, но оно не может вычесть 10 при правильных обстоятельствах

    for(int i=0; i<5; i++) {
        rowTotal1 += square[0][i].value;
            if(rowTotal1 > 22 && square[0][i].name == "AA" ||
                                 square[0][i].name == "AB" ||
                                 square[0][i].name == "AC" ||
                                 square[0][i].name == "AD") {
                rowTotal1 += square[0][i].value - 10;
            }
    }

Ответы [ 2 ]

3 голосов
/ 18 февраля 2020

Вы имеете в виду:

let rowTotal1 = 0;
let hasSpecialNames = false;

for(int i=0; i<5; i++) {
  rowTotal1 += square[0][i].value;

  if (square[0][i].name == "AA" ||
                       square[0][i].name == "AB" ||
                       square[0][i].name == "AC" ||
                       square[0][i].name == "AD") {
    hasSpecialNames = true;
  }
}

if(rowTotal1 > 21 || hasSpecialNames) {
  rowTotal1 = rowTotal1 - 10;
}
2 голосов
/ 18 февраля 2020

Во-первых, значения

превышают 21

, но вы пишете

if(rowTotal1 > 22...

, не должно ли это быть rowTotal1> 21?

О вашем вопросе,

rowTotal1 + = square [0] [i] .value - 10;

Какое значение для квадрата [0] [ i] .value?

Если вы хотите «вычесть 10 из ряда»,

just rowTotal1 - = 10; должен это сделать.

...