C++语句,空语句,复合语句

表达式

C++表达式是在C++程序中执行某种操作并返回一个值的语句。

它由操作数、运算符和操作符的优先级和结合性(决定了运算符的执行顺序)组成。C++表达式可以用于执行各种操作,如算术运算、逻辑运算、条件判断等。

C++表达式可以包含一个或多个操作数,操作数可以是字面值、变量、函数调用或其他表达式的结果。运算符可以是算术运算符(如+、-、*、/等)、关系运算符(如==、!=、>、<等)、逻辑运算符(如&&、||、!等)等。

C++表达式会根据运算符的优先级和结合性进行求值。优先级指定了运算符的执行顺序,而结合性则决定了相同优先级的运算符如何结合。例如,乘法运算符的优先级高于加法运算符,因此表达式 "2 + 3 * 4" 中的乘法会先于加法运算进行。

C++表达式的结果类型由操作数的类型和运算符的要求决定。例如,两个整数相加的表达式的结果类型是整数,两个浮点数相加的结果类型是浮点数。

下面这些都是表达式

a+2
a*b
a<<2

简单语句

C+语言中的大多数语句都以分号结束,

ival+5//表达式

一个表达式末尾加上分号就变成了表达式语句,表达式语句的作用是执行表达式并丢弃求值结果

ival + 5; //一条没什么实际用处的表达式语句
cout << ival; // 一条有用的表达式语句


第一条语句没什么用处,因为虽然执行了加法,但是相加的结果没被使用。比较普遍的情况是,表达式语句中的表达式在求值时附带有其他效果,比如给变量赋了新值或者输出了结果。

空语句

最简单的语句是空语句,空语句中只含有一个单独的分号:

 ;//空语句


如果在程序的某个地方,语法上需要一条语句但是逻辑上不需要,此时应该使用空语句。

一种常见的情况是,当循环的全部工作在条件部分就可以完成时,我们通常会用到空语句。例如,我们想读取输入流的内容直到遇到一个特定的值为止,除此之外什么事情也不做:

// 重复读入数据直至到达文件末尾或某次输入的值等于 sought
while (cin >> s && s != sought)
;// 空语句


while 循环的条件部分首先从标准输入读取一个值并且隐式地检查 cin,判断读取是否成功。假定读取成功,条件的后半部分检查读进来的值是否等于sought的值。如果发现了想要的值,循环终止;否则,从cin中继续读取另一个值,再一次判断循环的条件。

 使用空语句时应该加上注释,从而令读这段代码的人知道该语句是有意省略的

别漏写分号,也别多写分号

因为空语句是一条语句,所以可用在任何允许使用语句的地方。

由于这个原因,某些看起来非法的分号往往只不过是一条空语句而已,从语法上说得过去。

下面的片段包含两条语句:表达式语句和空语句。

ival = v1 + v2;;//正确;第二个分号表示一条多余的空语句


多余的空语句一般是无害的,但是在if的条件后面限了一个额外的分分号就可能完全改变程序员的初衷。例如下面这个代码就会循环进行下去

// while循环体是那条空语句
//出现了糟糕的情况:额外的分号,循环体是那条空语句 
while (iter != svec.end());//递增运算不属于循环的一部分
++iter;

复合语句(块)

复合语句是指用花括号括起来的(可能为空的)语句和声明的序列,复合语句也被称作块。

一个块就是一个作用域,在块中引入的名字只能在块内部以及嵌套在块中的子块里访问。通常,名字在有限的区域内可见,该区域从名字定义处开始,到名字所在的(最内层)块的结尾为止。

如果在程序的某个地方,语法上需要一条语句,但是逻辑上需要多条语句,则应该使用复合语句。

例如,while或者for的循环体必须是一条语句,但是我们常常需要在循环体内做很多事情,此时就需要将多条语句用花括号括起来,从而把语句序列转变成块。
举个例子

while (val <=10) {
sum += val; //把sum + val的值赋给sum。
++val; //给val加1
}


程序从逻辑上来说要执行两条语句,但是while循环只能容纳一条。此时,把要执行的语句用花括号括起来,就将其转换成了一条(复合)语句。

块不以分号作为结束。

所谓空块,是指内部没有任何语句的一对花括号。空块的作用等价于空语句:
 

while (cin >> s && s!= sought)
{}//空块 

相关推荐

  1. C++语句空语句复合语句

    2024-03-24 02:36:02       20 阅读
  2. python学习笔记11(程序跳转语句空语句

    2024-03-24 02:36:02       43 阅读
  3. C语言复习 -- 字符串

    2024-03-24 02:36:02       22 阅读
  4. c语言)goto语句

    2024-03-24 02:36:02       41 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-24 02:36:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-24 02:36:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-24 02:36:02       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-24 02:36:02       20 阅读

热门阅读

  1. SQL题:

    SQL题:

    2024-03-24 02:36:02      18 阅读
  2. Python 类的学习

    2024-03-24 02:36:02       17 阅读
  3. 洛谷 P1011 [NOIP1998 提高组] 车站

    2024-03-24 02:36:02       18 阅读
  4. kafka 01

    kafka 01

    2024-03-24 02:36:02      18 阅读
  5. Unity3D EventMgr事件订阅与发布详解

    2024-03-24 02:36:02       20 阅读
  6. taro常用的一些功能

    2024-03-24 02:36:02       17 阅读