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

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

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

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

22.01.2015, 23:42. Просмотров 397. Ответов 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;

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

Не срабатывает очистка БД - Программирование Android
Почему не срабатывает очистка таблицы? void clearTable(String TableName){ DataBase dbHelper = new DataBase(this); ...

USB_DEVICE_ATTACHED не срабатывает - Программирование Android
пишу программу которой нужно определить подключена ли к телефону флешка. при отключении (USB_DEVICE_DETACHED) сообщение срабатывает,а при...

Не срабатывает onTouchEvent - Программирование Android
Всем доброго Вечера, недавно занимаюсь программирование под Android. Каким образом реализовать корректную обработку onTouchEvent в ниже...

Не срабатывает activityForResult - Программирование Android
Добрый день Есть метод: /// FirebaseUser user = mFirebaseAuth.getCurrentUser(); ...

Не срабатывает событие OnListItemClick - Программирование Android
Имеется код.. Все отлично работает, только вот беда onListItemClick у меня не срабатывает. Окажите посильную помощь в реализации и...

Перенос строк по \n не срабатывает - Программирование Android
считываю в string файл txt, в котором есть переносы \n, но они почему-то не срабатывают, а отображаются обычным текстом. с чем может быть...

Перегрузка функций не срабатывает - Программирование Android
Добрый день. Разбираюсь в Андроид Студио с одним проектом. И наткнулся на странную особенность: есть базовое активити. В нем функция: ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kemaweyan
2 / 2 / 1
Регистрация: 16.12.2014
Сообщений: 5
23.01.2015, 00:38     If срабатывает не на 0 а на -1 #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);
trojan1297
1 / 1 / 0
Регистрация: 09.09.2014
Сообщений: 18
23.01.2015, 01:16  [ТС]     If срабатывает не на 0 а на -1 #3
Благодарю за подробное пояснение.
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,723
23.01.2015, 10:07     If срабатывает не на 0 а на -1 #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));
Кстати, а почему при проигрыше количество побед уменьшается?
androbro
323 / 283 / 59
Регистрация: 17.10.2014
Сообщений: 836
23.01.2015, 10:10     If срабатывает не на 0 а на -1 #5
CoolMind, + за феншуй
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,723
23.01.2015, 12:25     If срабатывает не на 0 а на -1 #6
androbro, ой, спасибо!
YuraAAA
1565 / 1307 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
23.01.2015, 13:14     If срабатывает не на 0 а на -1 #7
Охинея какая-то, простите)
условие countWins == 0 будет всегда true, видимо что это локальная переменная.
Значит, будет так?
Java
1
2
3
int countWins = 0;
if (isWin) countWins++;
else gameOver();
androbro
323 / 283 / 59
Регистрация: 17.10.2014
Сообщений: 836
23.01.2015, 14:25     If срабатывает не на 0 а на -1 #8
CoolMind, тут надо проявить немного фантазии при переводе
Цитата Сообщение от trojan1297 Посмотреть сообщение
countWins
ИМХО с одной стороны это кажется количество побед, а с другой стороны это и количество оставшихся жизней(попыток)))
изначально их правда 0...хардкорная игрушка назревает)))
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,723
23.01.2015, 15:30     If срабатывает не на 0 а на -1 #9
YuraAAA, androbro, да, вы правы, стёбное условие. Может, автор и правда пытался посчитать количество жизней?
trojan1297
1 / 1 / 0
Регистрация: 09.09.2014
Сообщений: 18
25.01.2015, 01:44  [ТС]     If срабатывает не на 0 а на -1 #10
Да игрушку хардкорную планирую, извиняюсь за мой английский))), countWins это количество выигранных раундов, при выигрыше +1 при проигрыше раунда -1. При 0 конец игры.
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,723
25.01.2015, 20:36     If срабатывает не на 0 а на -1 #11
trojan1297, рад, что вы зашли на огонёк.
И всё же, зачем у вас при проверках сразу происходит инициализация countWins = 0? Это было бы нормально в начале программы, но если в середине, то далее требуется цикл, а не просто ветвление.
И мы намекнули, что это, всё же, не количество побед, а разность между количеством побед и поражений.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.01.2015, 21:02     If срабатывает не на 0 а на -1
Еще ссылки по теме:

Периодический alarm не срабатывает - Программирование Android
Нужно установить alarm с некой периодичностью. Когда устанавливаю на 15 сек, то все работает отлично alarmManager.set(AlarmManager.RTC,...

Не срабатывает кнопка меню - Программирование Android
Обработчик в активити @Override public boolean onCreateOptionsMenu(Menu menu) { msbox("menu"); //Добавлено для обнаружения...

ScroolView срабатывает по событиям SeekBar - Программирование Android
Есть SeekBar который имеет вид часов, и он находится в ScroolView при попытке задать время, срабатывает ScroolView. Можна ли запретить...

Не срабатывает нажатие кнопки в Dialog - Программирование Android
Необходимо при запуске окна, запрашивать от пользователя логин. Если логин введен - приложение продолжает свою работу. Если нет, то...

Не срабатывает разрешение на чтение контактов - Программирование Android
Доброго времени суток. Заранее прошу прощения за нубовский вопрос. Делаю первые шаги java под андроид. Пытаюсь зачитать список...


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

Или воспользуйтесь поиском по форуму:
trojan1297
1 / 1 / 0
Регистрация: 09.09.2014
Сообщений: 18
25.01.2015, 21:02  [ТС]     If срабатывает не на 0 а на -1 #12
CoolMind, Инициализация происходит в начале программы, сюда запихнул просто для наглядности.
Yandex
Объявления
25.01.2015, 21:02     If срабатывает не на 0 а на -1
Ответ Создать тему
Опции темы

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