Написал рабочий код, использовал булеан, но думаю, что булеан здесь не работает как должен
...
boolean m = (a%2==0);
if (a>0&&m)
Sout(положительное четное)
else if (a>0 & & !m)
Sout (положительное нечетное)
...
Все условия выполняются, консоль выдаёт то что нужно, но мне не нравится как я использую булеан, тут я использую "m" и "!m", а булеан как я думал должен сам определять где тру где фолс, подскажите как правильное его использовать или все таки я правильно сделал???
Gosha Gosha
5 уровень
Ребят помогите разобраться
Архивный
Комментарии (4)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Алексей Серов
18 сентября 2020, 09:14
1. в данном случае, если не нравится - можешь не использовать: прямо в условии в if добавить:
if (a>0&&a%2==0).
2. все верно - boolean вернет true или false в зависимости от условия (a%2==0)
а оператор if (a>0 & & m) работает когда оба условия истина : т.е. a>0 И m=true;
аналогично if (a>0 & & !m) - a>0 И !m = true- что равносильно: а>0 И m=false
0
Gosha Gosha
18 сентября 2020, 09:29
1.Изначально я все так и прописал в условии, но мы же тут проходим булеан, поэтому хочу в нем разобраться
2.Я хотел написать, что если выполняется булеан m= true, при условии if (a>0 && m)- четное, а если булеан m= false, при таком же условии if (a>0 && m)- нечетное, но компилятор не видит тут разницы и всегда выдает четное
0
hidden #598481
18 сентября 2020, 09:44
Потому что "=" это не сравнение, а присваивание.
Сравнивают при помощи "==".
Ну и сравнивать boolean с true - это масло масляное, от этого наоборот надо избавляться:
вместо if (condition == true) надо писать просто if (condition), а вместо такой конструкции:надо писать Ну это так, на будущее
0
Gosha Gosha
18 сентября 2020, 11:35
Можете по подробнее обьяснить про конструкцию с conditinon на конкретном примере с этой задачей, просто пока я даже не понимаю когда и где писать sout(четное) и где sout(нечетное)
0