Bahooka Ответов: 2

Почему C++ говорит, что mynumber не называет тип


мой код:

#include <iostream>

using namespace std;

int main();
myNumber == '2';
{
   if (myNumber == '200')
 {
    return 0
 }
else
{
    myNumber + 2;
    cout << myNumber << endl;
}
}


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

Я пробовал изменить переменную

2 Ответов

Рейтинг:
18

raddevus

mynumber == '2'
является оценочным значением mynumber, равным символу '2'.

Вы должны объявить тип переменной перед ее использованием:
char mynumber = '2';

И имейте в виду, что вы используете числа как символ-это то, что определяют одинарные кавычки в вашем коде.

Кроме того, mynumber == '200' не будет работать. Это неверный синтаксис.
Вы действительно хотите объявить myNumber как целочисленный тип, например:
int myNumber = 2; // одинарных кавычек нет.
Вы, вероятно, хотите что-то вроде:
int main()
{
   int myNumber = 2;
   if (myNumber == 200)
   {
     return 0;
   }
  else
  {
    myNumber += 2;
    cout << myNumber << endl;
  }
} // end of main


Примечание: этот код выполняется только один раз, потому что нет механизма циклирования (while или for loop).


Рейтинг:
12

OriginalGriff

Тому есть несколько причин.
0) Здесь вам не нужна точка с запятой:

int main();

1) Ваша фигурная скобка находится в неправильном месте:
int main();
myNumber == '2';
{
Он должен быть непосредственно под объявлением функции:
int main()
   {
   myNumber == '2';

2) myNumber не определен, поэтому у него нет никакого типа, который может знать C++. Попробуй
int myNumber == '2';

3) "= = " - это оператор сравнения, а не присваивание, так что даже если бы вы его объявили myNumber это не имело бы никакой "реальной" ценности. Вместо этого используйте " = " - это оператор присваивания.
4) " 2 " - это символ, а не целое число - вы, вероятно, хотите использовать здесь числа.
5) " 200 " - это не символ, это три символа, так что это тоже не будет компилироваться, и вы не можете сравнить это с одним символом, даже если бы захотели.
6)
myNumber + 2;
Ничего не делает: он вообще не меняет никаких значений в программе. Вероятно, вы имели в виду
myNumber += 2;
Или
myNumber = myNumber + 2;

7) Что вы ожидали получить от "2" плюс 2? Будет ли это все еще работать, если вы назначили " 9 " вместо этого?
8) отступ ваш код! выберите стиль и придерживайтесь его - плохой отступ делает код более трудным для чтения, а это означает, что его труднее исправить.

Так мало кода, так много ошибок! :смеяться: