一文带你搞定C++语句

简介: 一文带你搞定C++语句

if 语句

1)语法:

if (表达式)

{

   // 表达式为真时执行的语句。

}

else

{

   // 表达式为假时执行的语句。

}

注意:


if (表达式)之间的空格可以不写。

表达式必须使用括号。

表达式可以是具体的值。

表达式一般是关系运算和逻辑运算表达式,也可以是赋值运算或其它的表达式。

不要把if(变量名==值)写成if(变量名=值)。

整个if语句可以没有else分支。

if或else分支花括号内的代码如果只有一行,花括号可以不写;如果一行也没有,花括号一定要写;如果有多行,花括号一定要写,如果不写,除了第一行,其它的代码将不是if语句的一部分。

if (表达式)和else后不能加分号,因为分号表示空语句。(C++用分号作为一条语句结束的标志。如果在C++程序中不小心多写了一个分号,那么该分号会被当成一条空语句。)

2)示例

嵌套使用 if 语句

1)嵌套使用if语句

if语句可以嵌套使用,实现多级(层)的条件判断(最多127层)。

语法:


if (表达式一)


{


   if (表达式二)


   {


       // 表达式二为真时执行的语句。


   }


else


{


   // 表达式二为假时执行的语句。


   }


}


else


{


   // 表达式一为假时执行的语句。


}

2)示例

#include <iostream>         // 包含头文件。
using namespace std;        // 指定缺省的命名空间。
int main()
{
  char sex;        // 性别(X-女,Y-男)。
  bool yz;         // 颜值(1-漂亮,0-不漂亮)。
  //提示用户输入sex
  cout << "请输入超女的性别(X-女,Y-男):";
  // 输入性别,存放在变量sex中。
  cin >> sex;
  // 判断性别,如果是女,流程继续,否则程序结束。
  if (sex == 'X')
  {
    // 显示“请输入颜值(1-漂亮,0-不漂亮):”的提示文字。
    cout << "请输入颜值(1-漂亮,0-不漂亮):";
    // 输入颜值,存放在变量中。
    cin >> yz;
    // 判断颜值
    if (yz == true)     // 漂亮。
    {
      cout << "哇!大美女!";
    }
    else
      ;//这里是一个空语句
  }
  //性别为Y的输出信息
  else {
    cout << "男人别来沾边!";
  }
}

嵌套if语句的坑

嵌套使用if语句时候,会出现if与else的配对问题。


C++编译器处理该问题的原则是:else总是与前面最近if 配对。(就近原则)


如果要改变这种配对关系,可以使用花括号来确定新的配对关系。

if (sex == 'X')
  {
    if (yz == true)
      cout << "sex==X,yz==true\n";
  }
  else
    cout << "sex==Y,yz==true or false\n";

这里如果不仔细看,可能会认为else是与第二层的if匹配,但是由于加了花括号了,这里说明一下,程序中的花括号就表示了一个语句块,这里第二层的 if 就是一个语句块,else与最开始的 if 匹配。

多条件的if语句

1)多条件的if语句

语法:


if (表达式一)


{


   // 表达式一为真时执行的语句。


}


else if (表达式二)


{


   // 表达式二为真时执行的语句。


}


else if (表达式三)


{


   // 表达式三为真时执行的语句。


}


……


else if (表达式n)


{


   // 表达式n为真时执行的语句。


}


else


{


   // 全部表达式都不为真时执行的语句。


}注意:

  • 多条件的if语句本质上是嵌套的if语句。
  • 最多只能有127个条件分支。
  • 最后一个else可以没有。

三目运算

三目运算也叫条件运算或三元运算,可以实现简单if语句的功能,但是书写更简洁。

语法: 表达式一 ? 表达式二 : 表达式三

计算达式的值如果为真,整个表达式的结果为表达式二的值,如果为假,整个表达式的结果为表达式三的值。

  int a,b,c;
  a=7;
  b=6;
  c=(a>b)?a:b;

等同于

 if (a>b) c=a;

 else c=b;

三目运算表达式可以嵌套使用,但是,过于复杂的三目运算表达式不方便理解。

switch语句

switch也是一种选择结构的语句,可以代替简单的多条件的if语句。

语法:


switch (表达式)


{


   case 值一:


      语句一;


      break;


   case 值二:


      语句二;


      break;


   ......


   case 值n:


      语句n;


      break;


   default:


      上述条件都不满足时执行的语句;


}

注意:

  • case后面必须是整数和字符,或者是结果为整数和字符的表达式,但不能使用变量。
  • default不是必须的,当没有default时,如果全部的case匹配失败,那么就什么都不执行。
  • 每个分支不要漏写break;语句。

while循环语句

语法:

while (表达式)

{

   语句块

}

先计算表达式的值,如果为真就执行语句块,执行完语句块后,回到循环首部再次计算表达式的值,如果为真又执行一次语句块……,这个过程会一直重复,直到表达式的值为假时不再执行语句块


注意:

  • 如果表达式的值永远为真,那么将进入死循环,所以在循环中应该有改变表达式的值的方法。
  • 如果循环体中的语句块只有一行代码,大括号可以不书写。
  • 有疑问先放一边,在以后的课程中,会介绍循环的各种使用方法。

示例:

#include <iostream>         // 包含头文件。
using namespace std;        // 指定缺省的命名空间。
int main()
{
  int n = 1;           // 编号
  while (n <= 10)
  {
    cout << "这是第" << n++ << "名同学" "<<endl;
  }
}

循环的跳转

breakcontinue两个关键字用于控制循环体中代码的执行流程。

break跳出(中止)当前循环语句。

continue回到当前循环语句的首部。

continue是跳过此次循环,在上面代码中就是当不是5的倍数时跳过此次循环到下一次

这里你会发现控制台什么都没有输出,这里其实是当 n进入循环时,n++变成1,进入else的break中,直接结束循环。

for循环语句

语法:


for (语句一 ; 表达式 ; 语句二)


{


   语句块


}


1)循环开始的时候,先执行语句一,在整个循环过程中语句一只会被执行一次。


2)计算表达式的值,如果为真,就执行一次循环体中的语句块。


3)执行完语句块后,执行一次语句二。


4)重复第2)步和第3),直到表达式的值不为真才结束for循环。

注意:


不要纠结for循环与while循环的区别,它们本质上没有区别。

for循环一般需要一个相当于计数器的变量,在语句一中对它进行初始化,在语句二中进行计数操作。

在for循环的语句一中,可以声明计数器变量。

在for循环中,语句一、表达式和语句二都可以为空,for (;;)等同于while (true)。

continue和break两个关键字也可以用在for循环体中。

#include<iostream>
using namespace std;
int main()
{
    for(int i = 0;i < 10 ;i++)
        cout<< i << endl;
}

嵌套使用循环

    // 在控制台输出九九乘法表。
  for (int ii=1; ii<=9; ii++)
  {
    for (int jj = 1; jj <= ii; jj++)
    {
      cout << ii << "*" <<  jj << "=" << ii*jj <<" ";
    }
    cout << endl;
  }

do…while循环语句

语法:

do

{

   语句块

} while (表达式);

功能与while语句类似,不同的是:

  • 进入循环时,先执行一次语句块,再计算表达式的值。
  • 循环的首部书写在循环的尾部,(表达式)后面还有一个分号。

goto语句

goto语句也称为无条件转移语句。


goto的语法:goto 语句标号;


语句标号的语法:语句标号:


如果在程序中使用了goto,程序的流程将跳转到语句标号的位置,并执行它后面的代码。


其中语句标号是按标识符规定书写的符号,放在某一语句行的前面,可以独占一行,标号后加半角冒号。


语句标号用于标识语句的位置,与goto语句配合使用。


在实际开发中,goto语句容易造成程序流程的混乱,不方便理解,调试也更麻烦,不建议使用。


相关文章
|
3天前
使用if语句
使用if语句
21 2
|
3天前
|
Serverless C++
8语句
8语句
21 1
|
3天前
|
C++
c++语句详细介绍(二)
c++语句详细介绍(二)
35 0
|
6月前
try - except 语句
try - except 语句
80 0
|
7月前
|
C语言
if语句介绍
if语句介绍
56 0
|
10月前
|
Linux C语言
do-while(0)语句到底有什么用?
do-while(0)语句到底有什么用?
69 0
|
自然语言处理 程序员 Python
耐人寻味的 for...else...语句
耐人寻味的 for...else...语句
54 0
if...else if...else 语句
if...else if...else 语句
70 0
if...else语句
if...else语句
47 0