sdsoft.comze.com Ответов: 1

Проблема в инкременте с java, инкремент не может работать


следующий код дает выход b = 0;
int b = 0;
b = b++;
b +=b;
System.out.println("Byte : "+b);


Что я уже пробовал:

b = b++;

почему b++ присваивает 0, а не 1

Suvendu Shekhar Giri

Сначала проверьте несколько хороших учебников и изучите основы.

Richard MacCutchan

Потому что этот код просто не имеет смысла. Перейдите к учебным пособиям по Java и изучите раздел об операторах.

1 Ответов

Рейтинг:
7

Suvendu Shekhar Giri

Хотя этот вопрос выглядит просто домашним заданием и на него мы, как правило, не отвечаем, но вот возможности таких результатов, которые могут помочь вам понять основы инкремента.

Цитата:
int x = 34;
int y = x++;

x сначала присваивается y, а затем увеличивается на единицу. Таким образом, x становится 35, а y присваивается значение 34.

Ссылка: Операторы инкремента и декремента - Java Tutorial - Java With Us[^]

Теперь, когда вы присваиваете постинкрементированное значение той же переменной, она просто присваивает старое значение, то есть 0 b в следующей строке-
b = b++; //b=0

Таким образом, вы получаете 0 в качестве выходного сигнала.

Измените эту строку, чтобы просто -
b++; //b=1


Попробуйте выполнить следующий код-
int b = 0;
b++; //changed line
//b +=b; // meaningless as it addsup to itself
System.out.println("Byte : "+b);


Надеюсь, мне удалось прояснить ваши сомнения. Если нет, пожалуйста, дайте мне знать :)


sdsoft.comze.com

но i = i++ + i;/ / i = 1