如何在C ++中编写if-else语句?

时间:2017-01-19 16:07:18

标签: c++ if-statement

我是C ++的新手。我的目标是写下以下逻辑:

if a = yes then print "ok", else return 0

到目前为止,这是我的代码:

int a;
cin>>a;                         
if (a = "Yes") {   // Error right here
    cout<< "ok"; << endl;
}else{
    return 0;
}

4 个答案:

答案 0 :(得分:0)

此代码中存在多个错误。

您需要在您的条件下使用比较运算符。这用双等号“==”表示。您的代码使用赋值“=”,它尝试将值“Yes”赋给变量a。这是C / C ++中的常见错误,因此每当您比较事物时都需要小心。

另一个错误是您已将变量a声明为整数,因此当您尝试编译时会出现类型不匹配错误,因为“是”是一个字符串。

答案 1 :(得分:0)

首先,您希望您的计划做什么?

您需要区分赋值和等于运算符。 请注意,在继续执行条件语句之前,您需要先了解基础知识。

合理的计划应该是这样的:

 int a;
     cin>>a;                         
     if (a == 5) {   // 5 is an integer
         cout<< "You entered 5!" << endl; // no semicolon after "
     }
return 0; // must be out of the else statement

答案 2 :(得分:0)

=分配内容。 使用==进行比较,但是您要将int与字符串进行比较。 如果您不小心,则在处理字符串时将char *的地址与数字进行比较。 请改用std::string

 #include <string>

 //.... some context I presume

 std::string a;
 cin  >>  a;                         
 if (a == "Yes") {   // Error right here
     cout<< "ok"; << endl;
 }else{
      return 0;
 }

答案 3 :(得分:-2)

您的代码在数据类型方面不正确。你有一个int类型的变量'a',你要比较字符串“yes”。尝试从逻辑的角度来看待它;你可以比较:

  • 2个数字(例如,2个大于1)
  • 2个字符串(例如,“food”与“cat”不同) 等...

在您的情况下,您将输入的数字(假设为5)与单词“是”进行比较。当您尝试为var a输入一个字母时,您将收到编译错误。因此,只需更改以下内容:

    string a;

代码的另一个问题是当if-then循环检查条件时;比较运算符是彼此相邻的2个等号,而不是单个等号。单个等号将右侧的项目分配给左侧的项目。例如,在:

    int num = 5;

变量num被赋值为5.但是你想进行比较,而不是将变量分配给它自己的条件!

您的循环始终为true,因为您将变量设置为它应该满足的条件。您还需要执行以下操作:

    if (a == "yes")

将var a中存储的值与==。

右侧的值进行比较

只是一些建议,我建议你在c ++上找一些好书。在线搜索。您还可以参加edx,课程记录等在线编程课程....在线还有很多其他免费学习资源可供您使用。您可能还想深入了解一种更简单的编程语言;我会建议刮擦。它为您提供了一个关于编程的基本概念,可以在不到一周的时间内完成。

**请注意,我觉得这是最简单的方法;但是,您也可以将a的类型设置为char,接受输入,然后将其转换回字符串。祝你好运!