операции с переменной int

Сообщения
136
Реакции
-6
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
здравствуйте.
в какой-то теме видел, что неправильным было iNum += 1, а правильным iNum++
Почему? Также и с минусом. Хотя оба варианта работают.
 
Сообщения
225
Реакции
90
Помог
1 раз(а)
CLUQA, надеюсь эту тему сожгла инквизиция.
iNum += 1 не ошибка, просто постинкрементация красивее выглядит и выполняет то же самое.
 
Сообщения
432
Реакции
410
Помог
14 раз(а)
irrumabo_me_nomen, у вопроса нет конкретики.
Код:
    new a=0, b=0;

    server_print("%i", a+=1);
    server_print("%i", b++);
Результат будет одинаковый? Если нет - какой из них правильный?
 
Сообщения
212
Реакции
334
Помог
3 раз(а)
Это немного разные операторы. Первый оператор применяет любую арифметическую операцию для левой переменной к правому выражению, а инкремент/декремент только прибавляет и отнимает единицу соответственно, возвращая результат до или после операции. В итоге оба варианта, указанных в сабже, скомпилируются в одну и ту же инструкцию, поэтому это больше стилистический вопрос. Однако если понять, что инкремент/декремент нужны именно для прибавления/вычитания единицы, то это и выходит более подходящий и "правильный" вариант,
21 Июл 2020
voed, irrumabo_me_nomen ответил на конкретный вопрос, а не утверждал то, что вопрос содержит конкретику.
 

Ayk

Сообщения
763
Реакции
478
Помог
19 раз(а)
a++ может быть только таким.
А вот а += 1 может быть и таким а += 1 + 2 * 3 и т.д.
 
Сообщения
225
Реакции
90
Помог
1 раз(а)
voed, правильность определяется задачей, так что тут я не отвечу.
CLUQA, я ошибся. iNum += 1 эквивалентно ++iNum (калькуляктор их скорее всего в один код объединит даже). Но тем не менее "более правильный" оператор определяется Вашей задачей.
 
Сообщения
136
Реакции
-6
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
voed, одинаковый результат будет.
irrumabo_me_nomen, вот и я думаю, в чем проблема, если в том примере было iNum += 1 и сказали заменить на iNum++
21 Июл 2020
Ayk, помимо сложения, можно выполнять и другие математические операции iNum -=, *= и так далее. Это я знаю) Спасибо)
21 Июл 2020
Xelson, прочитал выше написанное. Думаю, здесь разницы совершенно нет, если речь идет про единицу.
 
Сообщения
225
Реакции
90
Помог
1 раз(а)
CLUQA, пре прибавляет и передаёт, пост передаёт потом прибавляет
 
Сообщения
136
Реакции
-6
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
voed, да, точно) Я на C# запускал))

Код:
byte a = 0;
byte b = 0;

a++;
b+=1;

Console.WriteLine(a);
Console.WriteLine(b);

//Result: 1 1
21 Июл 2020
irrumabo_me_nomen, а pre или post в данном примере чем является?
 
Сообщения
66
Реакции
34
Помог
3 раз(а)
Сообщения
2,751
Реакции
3,016
Помог
61 раз(а)
в какой-то теме видел, что неправильным было iNum += 1, а правильным iNum++
наоборот же!
Правильно num += 1, а не num++ (python не понимает постинкремент)

а, вообще вот
1595352564847.png
 
Сообщения
136
Реакции
-6
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
AleXr, а разница?)
 
Сообщения
136
Реакции
-6
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
fl0wer, хорошо
Код:
public class Main
{
    public static void main(String[] args) {
        int a = 0;
        int b = 0;
        
        a++;
        b+=1;
        
        System.out.println(a);   
        System.out.println(b);
    }
}

// Result: 1 1
21 Июл 2020
AleXr, объясни нормально)) В чем заключается ваша правильность? ))
Если я выполняю сложение не в функции вывода сообщения, а до нее?)
 
Сообщения
1,698
Реакции
1,510
Помог
26 раз(а)
Сообщения
136
Реакции
-6
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
AleXr, все, увидел результат))))
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу