如何用C++编写if-else语句

How to write an if-else statement in C++?

本文关键字:if-else 语句 编写 C++ 何用      更新时间:2023-10-16

我对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;
}

首先,您希望您的程序做什么?

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

一个合理的程序应该是这样的:

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

=分配事物。使用==进行比较,但是要将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;
}

此代码中存在多个错误。

您需要在您的条件下使用比较运算符。这由双等号"0"表示;==";。您的代码正在使用赋值";CCD_ 6";它试图将值"0"分配给"0";是";这是C/C++中的一个常见错误,所以在进行比较时需要小心。

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

您的代码在数据类型方面是不正确的。您有一个int类型的变量"a",将其与字符串"yes"进行比较。试着从逻辑的角度来看待它;你可以比较:

  • 2个数字(例如,2大于1)
  • 2个字符串(例如,"food"与"cat"不是同一个词)等等

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

string a;

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

int num = 5;

变量num被赋值为5。但是你想做一个比较,而不是给变量分配它自己的条件!

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

if (a == "yes")

这将存储在var a中的值与==右侧的值进行比较。

只是一些建议,我建议你买一些关于c++的好书。在线搜索。你也可以参加edx上的在线编程课程、课程记录等……还有很多其他免费的在线学习资源,你可以利用。您可能还想深入研究一种更简单的编程语言;我推荐刮刮。它让你对编程有了一个非常基本的想法,并且可以在不到一周的时间内完成。

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