Развивающий метод недели месяца - PullRequest
0 голосов
/ 12 октября 2018

В основном следующим способом я пытаюсь сказать: если z2 не равен 0, z2 - 1. иначе добавьте 6 к z2.Я знаю, что это, наверное, глупо, но я довольно новичок в программировании.Код следующий:

int z2 = someValue;

    if(z2 != 0){
        z2--;
        }
    else{
         z2 + 6;
        }

Спасибо

Ответы [ 2 ]

0 голосов
/ 12 октября 2018

Математическая операция для этого: по модулю , в java оператор %, остаток от деления.

|   x | x % 3 |
|-----|-------|
|   6 |   0   |
|   5 |   2   |
|   4 |   1   |
|   3 |   0   |
|   2 |   2   |
|   1 |   1   |
|   0 |   0   |
|  -1 |  -1   |
|  -2 |  -2   |
|  -3 |   0   |
|  -4 |  -1   |

Использование целочисленного деления / (5/3 ==1):

y% x == y - x * (y / x)

Обратите внимание на знак, если одна из сторон отрицательна.

В вашем случае уменьшение становится:

z2 = (z2 - 1 + 7) % 7;

или коротким

z2 = (z2 + 6) % 7;

Были приняты меры, чтобы левая часть % оставалась положительной.Тогда результат будет в 0 .. 6.

Для тех, кто интересуется латиницей, модуль на самом деле называется операцией (существительное), но в выражении получает наречие окончание o (ablativus): "34 по модулю 7 - это 6" .Но по модулю отлично подойдет в качестве существительного.

0 голосов
/ 12 октября 2018

Вам необходимо присвоить z2 значению в условии else:

if (z2 != 0) {
    z2--;         // same as z2 = z2 - 1
}
else {
    z2 += 6;      // same as z2 = z2 + 6
}

Но мы можем сделать это с помощью одной строки кода, используя троичныйвыражение:

z2 = z2 != 0 ? z2 - 1 : z2 + 6;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...