C ++中的if语句

如果没有条件语句(例如if语句),则程序每次都会以几乎完全相同的方式运行。If语句允许更改程序的流程,因此它们允许算法和更有趣的代码。

在讨论if语句的实际结构之前,让我们检查计算机术语中TRUE和FALSE的含义。真实的陈述是计算为非零数字的陈述。错误的语句计算结果为零。与关系运算符进行比较时,如果比较为真,则该运算符将返回1;如果比较为假,则该运算符将返回0。例如,检查0 == 2的计算结果为0。检查2 == 2的计算结果为1。如果这使您感到困惑,请尝试使用cout语句输出这些各种比较的结果(例如cout <<( 2 == 1);)

进行编程时,程序的目标通常要求将变量存储的一个值与另一个值进行比较,以确定一个值是较大,较小还是相等。

有许多操作员允许进行这些检查。

众所周知,以下是关系运算符以及示例:

>     greater than              5 > 4 is TRUE
<     less than                 4 < 5 is TRUE
>=    greater than or equal     4 >= 4 is TRUE
<=    less than or equal        3 <= 4 is TRUE
==    equal to                  5 == 5 is TRUE
!=    not equal to              5 != 4 is TRUE

您很可能以前已经看过这些符号,可能符号略有不同。它们不应构成理解的任何障碍。既然您已经了解了计算机术语中的TRUE和FALSE以及比较运算符,那么让我们看一下if语句的实际结构。
基本的If语句语法
if语句的结构如下:

if ( TRUE )
  Execute the next statement

这是一个显示语法的简单示例:

if ( 5 < 10 )
  cout<<"Five is now less than ten, that's a big surprise";

在这里,我们正在评估语句“比五个少五个”,以查看它是否正确。运气不错!如果需要,您可以编写自己的完整程序,包括iostream,并将其放在main函数中,然后运行以进行测试。

若要在评估结果为true的if语句后执行多个语句,请使用括号,就像我们对函数主体所做的一样。大括号内的任何内容都称为复合语句或块。

例如:

if ( TRUE ) {
  Execute all statements inside the braces
}

我建议始终在if语句后加括号。如果执行此操作,则无需记住在要执行多个语句时将它们放入,并且可以使if语句的主体在视觉上更加清晰。
别的
有时,如果if语句中的条件评估为false,则最好执行一些代码,而不是在语句评估为true时执行的代码。“ else”语句有效地表明,如果if语句为FALSE,则执行其后的任何代码(无论是单行还是括号之间的代码)。

它看起来可能像这样:

if ( TRUE ) {
  // Execute these statements if TRUE
}
else {
  // Execute these statements if FALSE
}

否则
else的另一种用法是,当有多个条件语句可能全部评估为true时,而您只希望一个if语句的主体执行。您可以在if语句及其主体之后使用“ else if”语句;这样,如果第一个语句为true,则将忽略“ else if”,但是如果if语句为false,则它将检查else if语句的条件。如果if语句为true,则不会检查else语句。可以使用其他许多if语句来确保仅执行一个代码块。

if ( <condition> ) {
  // Execute these statements if <condition> is TRUE
}
else if ( <another condition> ) {
  // Execute these statements if <another condition> is TRUE and
  // <condition> is FALSE
}

让我们看一个简单的程序,供您自己尝试。

#include <iostream>   
 
using namespace std;
         
int main()                            // Most important part of the program!
{
  int age;                            // Need a variable...
   
  cout<<"Please input your age: ";    // Asks for age
  cin>> age;                          // The input is put in age
  cin.ignore();                       // Throw away enter
  if ( age < 100 ) {                  // If the age is less than 100
     cout<<"You are pretty young!\n"; // Just to show you it works...
  }
  else if ( age == 100 ) {            // I use else just to show an example 
     cout<<"You are old\n";           // Just to show you it works...
  }
  else {
    cout<<"You are really old\n";     // Executed if no other statement is
  }
  cin.get();
}

使用布尔运算符的更有趣的条件
布尔运算符使您可以创建更复杂的条件语句。例如,如果您希望检查变量是否同时大于5和小于10,则可以使用布尔值AND来确保var> 5和var <10都为真。在以下有关布尔运算符的讨论中,我将大写布尔运算符以区别于普通英语。等效功能的实际C ++运算符将在本教程中进一步介绍-C ++符号不是:OR,AND,NOT,尽管它们具有等效功能。

使用if语句时,您通常希望检查多个不同的条件。您必须了解布尔运算符OR,NOT和AND。布尔运算符的功能类似于比较运算符:如果运算为FALSE,则每个运算符返回0;如果运算为TRUE,则每个运算符返回1。

NOT:NOT运算符接受一个输入。如果该输入为TRUE,则返回FALSE,如果该输入为FALSE,则返回TRUE。例如,NOT(1)的计算结果为0,而NOT(0)的计算结果为1。NOT(除零以外的任何数字)的计算结果为0。在C和C ++中,NOT编写为!。在AND和OR之前先评估NOT。

AND:这是另一个重要的命令。如果两个输入均为TRUE(如果’this’和’that’为true),则AND返回TRUE。(1)AND(0)的值将为零,因为其中一个输入为假(两个值都必须为TRUE才能得出TRUE)。(1)AND(1)的结果为1。(0以外的任何数字)AND(0)的结果为0。AND运算符用C ++编写。不要以为它检查数字之间的相等性而感到困惑:事实并非如此。请记住,AND运算符先于OR运算符求值。

OR:OR语句非常有用!如果它检查的两个值中的一个(或两个)均为TRUE,则返回TRUE。例如,(1)OR(0)的值为1。(0)OR(0)的值为0。OR表示为||。在C ++中。这些是管道字符。在您的键盘上,它们可能看起来像是拉长的冒号。在我的计算机上,管道与\共享其密钥。请记住,OR将在AND之后求值。

可以在单个语句中组合多个布尔运算符;通常,当为if语句创建复杂的表达式时,这样做会非常有价值。什么是!(1 && 0)?当然,这是正确的。确实是因为1 && 0的值为0,!0的值为TRUE(即1)。

尝试其中的一些-它们并不难。如果您有任何疑问,

A. !( 1 || 0 )         ANSWER: 0    
B. !( 1 || 1 && 0 )    ANSWER: 0 (AND is evaluated before OR)
C. !( ( 1 || 0 ) && 0 )  ANSWER: 1 (Parenthesis are useful)

如果您喜欢本节,则可能需要更多地看一下布尔代数。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值