Инкрементальный постфиксный оператор (таким образом, "++
" после имени переменной) сначала вычисляет выражение и увеличивает его только после этого.
Таким образом, channelNumber = channel++
является эквивалентом следующего
channelNumber = channel;
channel = channel + 1;
Becuse channel
является только параметром в вашем методе, его увеличение ничего не изменит (оно не будет использовано позже в вашем методе), уменьшая ваше утверждение до channelNumber = channel;
выражение.
Самое простое исправление вашего кода:
// so it already works
public void incChannel(int channel) {
if (status.equalsIgnoreCase("ON")) {
channelNumber = ++channel;
} else if (status.equalsIgnoreCase("OFF")) {
System.out.println("Error TV is off");
}
... потому что оператор приращения префикса (= "++
" перед имя переменной) сначала увеличивается, а оценивает только потом. Таким образом, оператор проблематики c работает как
channel = channel + 1;
channelNumber = channel;
, что, вероятно, то, что вы хотите.