проблемы при использовании модуля (%) - PullRequest
0 голосов
/ 10 мая 2018
class IfElse
{
    public static void main (String[] args) throws java.lang.Exception
    {
        double x = 1784;

        while (x <= 1){

            if((x % 2) = 0){

                x = x / 2;
            }
            else{
                x = 3 * x + 1;
            }
            System.out.println(x);
        }
    }
}

хорошо, у меня проблемы с% (модулем). Может ли кто-нибудь помочь? Я начинающий в кодировании. Понятия не имею, что я делаю. Если бы кто-то мог помочь с этим ...

Ответы [ 2 ]

0 голосов
/ 10 мая 2018

Сначала ваш цикл никогда не будет введен, потому что 1784 is not less than or equal to 1.Также вам нужно проверить равенство, используя ==, а не =.Кроме того, совет, настоятельно рекомендуется не использовать двойные числа для сравнения, так как округление может привести к непредсказуемым результатам.Я бы посоветовал вам изменить double x на int x, если только вы не обязаны использовать double.

0 голосов
/ 10 мая 2018

Есть пара проблем:

  1. Ваш цикл while (поскольку x изначально установлен на 1784, но ваш цикл while работает только тогда, когда x меньше или равен 1. Я думаю,вы захотите поменять местами эти два значения, предполагая, что вы хотите начать с 1 и заканчивать, когда оно достигает или превышает 1784.

  2. Кроме того, когда вы оцениваете равенство междудва значения, которые вам нужно использовать == вместо одного =. Одно = присваивает значение, == выполняет сравнение на равенство и возвращает true или false.

Вот дополнительные ресурсы по операторам равенства и реляции в Java: https://docs.oracle.com/javase/tutorial/java/nutsandbolts/op2.html, а также информация по управлению циклами в Java: https://docs.oracle.com/javase/tutorial/java/nutsandbolts/while.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...