Member 12890185 Ответов: 1

Связанные с условными операторами


Что означает if (! a>= "некоторое число")?
это то же самое, как если бы a не было больше или равно некоторому числу ??????
Например, каков будет результат следующего?

#include<iostream>
using namespace std;
int main()
{
	int a=500,
	b=100,
	c;
	if(!a>=600)
	b=300;
	c=200;
	cout<<b<<c;
	return 0;
}


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

Я попытался понять это следующим образом

если a не больше или не равно некоторому числу
таким образом, по моему мнению, он удовлетворяет следующему, что a не больше или равно 600, поскольку он инициализирован до 500, поэтому b должен изменить свое значение со 100 на 300.
плз скажите, где я иду не так?

CHill60

Является ли " а " числовым?

Member 12890185

да
фактический вопрос заключается в следующем
#include<iostream>
использование пространства имен std;
тап_п()
{
int a=500,
b=100,
с;
если (! a>=600)
b=300;
с=200;
cout<< b< & lt; c;
возвращает 0;
}

Patrice T

Воспользуйся Улучшить вопрос чтобы обновить ваш вопрос.
Чтобы каждый мог обратить внимание на эту информацию.

Member 12890185

@ppolymorphe
Теперь я его обновил..
пожалуйста, помогите мне..

[no name]

"каков будет результат следования?", запустите его и узнайте сами. Почему ты все так усложняешь? если (a < 600)

Member 12890185

вот что я сделал
по моему мнению, ответ должен быть 300 и 200, но при компиляции он дает 100 и 200 >>> & gt;

[no name]

Не имеет значения, что такое "по вашему мнению", а что нет. На самом деле он вообще ничего не делает "на компиляции". Вам придется сначала запустить полученный exe-файл, чтобы получить какой-либо результат. И я подозреваю, что порядок или приоритет дает вам ответ, который вы получаете. И вы усложняете себе жизнь, что только усугубляет ваше замешательство. Вы применяете логический оператор NOT к переменной a, которая изменяет то, что, по вашему мнению, она должна быть. Облегчите себе задачу и напишите простой код. Он легче отлаживается и не вызывает путаницы, когда происходят вещи, которые, по вашему мнению, не должны происходить.

1 Ответов

Рейтинг:
9

Patrice T

Все дело в приоритете оператора
Приоритет оператора C++ - cppreference.com[^]
! имеют более высокий приоритет, чем >=
Это означает, что

if(!a>=600)

является
if((!a)>=600)

а в с 0 означает ложный и любые ценности не ноль является истинный
так что для а=500, ! а является 0 и у вас есть
if(0>=600)


CPallini

5.

Patrice T

Спасибо.

CHill60

5 б. Первоначально я опубликовал ответ на C# и понял, что был ненаблюдательным. Назвал себя несколькими именами и удалил свое решение (следовательно, ваше - "2")

Patrice T

Большое спасибо.