Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
trojan1297
1 / 1 / 0
Регистрация: 09.09.2014
Сообщений: 18
#1

If срабатывает не на 0 а на -1 - Программирование Android

22.01.2015, 23:42. Просмотров 420. Ответов 11
Метки нет (Все метки)

Здравствуйте. Сразу извиняюсь за возможно глупый вопрос, и возможно даже что не по андройд а по java в общем.

Проблема в следующем:
If срабатывает не на 0 а на -1

C#
1
2
3
4
5
6
7
8
9
10
11
12
int countWins = 0;
if(isWin == true) {
            countWins++;
        } else {
            if (countWins == 0) {
                countWins = 0;
                gameOver();
 
            }
            countWins--;
        }
        count.setText("" + countWins);
если же вместо countWins == 0 поставить countWins == 1, то условие в этом блоке всё равно выполняются если countWins = -1;

Надеюсь что вопрос сформулировал понятно)
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.01.2015, 23:42
Здравствуйте! Я подобрал для вас темы с ответами на вопрос If срабатывает не на 0 а на -1 (Программирование Android):

Таймер срабатывает раньше времени или вообще не срабатывает - JavaScript
Помогите, пожалуйста, разобраться, что нетак с таймером. Браузер Chrome При создании записи, создаётся заметка со следующими...

Таймер срабатывает раньше времени или вообще не срабатывает - JavaScript
Помогите, пожалуйста, разобраться, что нетак с таймером. Браузер Chrome При создании записи, создаётся заметка со следующими...

Таймер срабатывает раньше времени или вообще не срабатывает - JavaScript
Помогите, пожалуйста, разобраться, что нетак с таймером. Браузер Chrome При создании записи, создаётся заметка со следующими...

Таймер срабатывает раньше времени или вообще не срабатывает - JavaScript
Помогите, пожалуйста, разобраться, что нетак с таймером. Браузер Chrome При создании записи, создаётся заметка со следующими...

Таймер срабатывает раньше времени или вообще не срабатывает - JavaScript
Помогите, пожалуйста, разобраться, что нетак с таймером. Браузер Chrome При создании записи, создаётся заметка со следующими...

Таймер срабатывает раньше времени или вообще не срабатывает - JavaScript
Помогите, пожалуйста, разобраться, что нетак с таймером. Браузер Chrome При создании записи, создаётся заметка со следующими...

Таймер срабатывает раньше времени или вообще не срабатывает - JavaScript
Помогите, пожалуйста, разобраться, что нетак с таймером. Браузер Chrome При создании записи, создаётся заметка со следующими...

Таймер срабатывает раньше времени или вообще не срабатывает - JavaScript
Помогите, пожалуйста, разобраться, что нетак с таймером. Браузер Chrome При создании записи, создаётся заметка со следующими...

Таймер срабатывает раньше времени или вообще не срабатывает - JavaScript
Помогите, пожалуйста, разобраться, что нетак с таймером. Браузер Chrome При создании записи, создаётся заметка со следующими...

Таймер срабатывает раньше времени или вообще не срабатывает - JavaScript
Помогите, пожалуйста, разобраться, что нетак с таймером. Браузер Chrome При создании записи, создаётся заметка со следующими...

Таймер срабатывает раньше времени или вообще не срабатывает - JavaScript
Помогите, пожалуйста, разобраться, что нетак с таймером. Браузер Chrome При создании записи, создаётся заметка со следующими...

Таймер срабатывает раньше времени или вообще не срабатывает - JavaScript
Помогите, пожалуйста, разобраться, что нетак с таймером. Браузер Chrome При создании записи, создаётся заметка со следующими...

Таймер срабатывает раньше времени или вообще не срабатывает - JavaScript
Помогите, пожалуйста, разобраться, что нетак с таймером. Браузер Chrome При создании записи, создаётся заметка со следующими...

Таймер срабатывает раньше времени или вообще не срабатывает - JavaScript
Помогите, пожалуйста, разобраться, что нетак с таймером. Браузер Chrome При создании записи, создаётся заметка со следующими...

Таймер срабатывает раньше времени или вообще не срабатывает - JavaScript
Помогите, пожалуйста, разобраться, что нетак с таймером. Браузер Chrome При создании записи, создаётся заметка со следующими...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Kemaweyan
2 / 2 / 1
Регистрация: 16.12.2014
Сообщений: 5
23.01.2015, 00:38 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Всё правильно. При срабатывании условия (хоть 0, хоть 1, хоть любое другое число), выполняется

Java
1
countWins = 0;
А затем в любом случае выполняется

Java
1
countWins--;
и поэтому в конце count.setText показывает -1. Если нужно, чтоб count.setText показывал значение countWins, на котором сработало условие, то следует переписать фрагмент так:

Java
1
2
3
4
5
6
7
8
9
10
11
int countWins = 0;
if(isWin == true) {
    countWins++;
} else {
    if (countWins == 0) {
        gameOver();
    } else {
        countWins--;
    }
}
count.setText("" + countWins);
1
trojan1297
1 / 1 / 0
Регистрация: 09.09.2014
Сообщений: 18
23.01.2015, 01:16  [ТС] #3
Благодарю за подробное пояснение.
0
CoolMind
419 / 402 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
23.01.2015, 10:07 #4
Можно переписать ещё вот так:
Java
1
2
3
4
5
6
7
8
int countWins = 0;
if (isWin)
    countWins++;
else if (countWins == 0)
    gameOver();
else
    countWins--;
count.setText(String.valueOf(countWins));
Кстати, а почему при проигрыше количество побед уменьшается?
2
androbro
326 / 287 / 61
Регистрация: 17.10.2014
Сообщений: 854
23.01.2015, 10:10 #5
CoolMind, + за феншуй
1
CoolMind
419 / 402 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
23.01.2015, 12:25 #6
androbro, ой, спасибо!
0
YuraAAA
1577 / 1318 / 271
Регистрация: 25.10.2009
Сообщений: 3,438
Записей в блоге: 2
23.01.2015, 13:14 #7
Охинея какая-то, простите)
условие countWins == 0 будет всегда true, видимо что это локальная переменная.
Значит, будет так?
Java
1
2
3
int countWins = 0;
if (isWin) countWins++;
else gameOver();
1
androbro
326 / 287 / 61
Регистрация: 17.10.2014
Сообщений: 854
23.01.2015, 14:25 #8
CoolMind, тут надо проявить немного фантазии при переводе
Цитата Сообщение от trojan1297 Посмотреть сообщение
countWins
ИМХО с одной стороны это кажется количество побед, а с другой стороны это и количество оставшихся жизней(попыток)))
изначально их правда 0...хардкорная игрушка назревает)))
2
CoolMind
419 / 402 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
23.01.2015, 15:30 #9
YuraAAA, androbro, да, вы правы, стёбное условие. Может, автор и правда пытался посчитать количество жизней?
1
trojan1297
1 / 1 / 0
Регистрация: 09.09.2014
Сообщений: 18
25.01.2015, 01:44  [ТС] #10
Да игрушку хардкорную планирую, извиняюсь за мой английский))), countWins это количество выигранных раундов, при выигрыше +1 при проигрыше раунда -1. При 0 конец игры.
1
CoolMind
419 / 402 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
25.01.2015, 20:36 #11
trojan1297, рад, что вы зашли на огонёк.
И всё же, зачем у вас при проверках сразу происходит инициализация countWins = 0? Это было бы нормально в начале программы, но если в середине, то далее требуется цикл, а не просто ветвление.
И мы намекнули, что это, всё же, не количество побед, а разность между количеством побед и поражений.
1
trojan1297
1 / 1 / 0
Регистрация: 09.09.2014
Сообщений: 18
25.01.2015, 21:02  [ТС] #12
CoolMind, Инициализация происходит в начале программы, сюда запихнул просто для наглядности.
0
25.01.2015, 21:02
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru