В настоящее время я изучаю C ++ из «Решение проблем с C ++» (9-й, W. Savitch). В книге показан пример цикла while. Цикл while выглядит следующим образом.
while (ans = = 'Y' || ans = = 'y')
{
//compound statement
}
ans
имеет тип char
,
Булево выражение, кажется, пытается использовать оператор равенства, и в контексте //compound statement
это имеет смысл. Тем не менее, я всегда думал, что пробелы запрещены в операторе равенства. т.е. ==
законно, но = =
незаконно
Когда я копирую код и компилирую его, мой компилятор выдает ошибку «ожидаемое выражение», когда он достигает = =
как будто я пытаюсь присвоить выражение переменной. Я почти уверен, что это опечатка в книге. Тем не менее, на всякий случай, если книга пытается бросить кривая, я подумал, что спросить …
Большое спасибо!
Является ли пробел между двумя = в операторе равенства допустимым в C ++?
Нет. = =
это два =
жетоны. ==
это один ==
маркер. Вы не можете использовать первое, когда имеете в виду второе.