语句:一个表达式加上一个分号就构成了一个语句。
一、最简单的语句——空语句
空语句只由一个分号构成。
; //空语句
【注意】:在写代码的时候不要漏写分号,也不要多写分号。否则我们的代码可能会违反我们的本意
if(i == 0); //如果i等于零,不进行任何操作,但是有可能本意是如果i等于0,就给i赋值为1 i = 1; //这样写不管i是否为0,都会给i赋值为1
如果想实现以上的想法,应该这样写
if(i == 0) //这样就是当i等于0的时候给i赋值,如果i不为0,就不会给i赋值为1 i = 1;
通过以上的两个例子我们就可以知道加不加分号的重要性了!
二、复合语句
复合语句指的是用花括号括起来的语句和声明的序列,复合语句也被称为块。
【注意】一个块就是一个作用域!,复合语句不以分号结束。
三、语句的作用域
定义在控制结构当中的变量只在相应的语句的内部可见,一旦语句结束,变量也就超出其作用域了。
四、条件语句
C++提供了两种按条件执行的语句,if语句和switch语句
if语句
判断一个条件是否为真,根据判断的结果决定是否执行相应的操作。
if语句有两种形式
①
if(condition) statement;
②
if(condition) statement1; else statement2;在使用if else语句嵌套的时候要注意,if和else的匹配, else 与离它最近的且尚未匹配的 if 匹配
switch语句
switch 语句的形式
switch (表达式) { case 标签1: 语句1; break; case 标签2: 语句2; break; default : 语句3; break; }
switch语句会根据表达式的值,来与case后面的标签比较,如果相匹配就会执行那条程序,否则就会一直往下找,如果所有的标签都比较结束了也没有找到与之匹配的,就会进入default语句。
【注意】:每条case后面的break不是必须的,如果没有break,当找到一个匹配的标签后,就会从这条语句开始执行,知道switch语句结束。如果我们只想执行其中一条语句,我们就要加上一个break;
例子: 不加break的
int num = 2; switch (num) { case 1: cout << 'a'; case 2: cout << 'b'; case 3: cout << 'c'; default: cout << " no this num" << endl; break; }
最后输出 bc no this num, 首先switch会根据num来找匹配的case, 找到了case2,然后除数b,由于没有break, 所以会一直往下执行。
例2:加上break的:
int num = 2; switch (num) { case 1: cout << 'a'; break; case 2: cout << 'b'; break; case 3: cout << 'c'; break; default: cout << "no this num" << endl; break; }
最后输出 b,switch找到了case2, 执行完之后,因为有一个break,所以会跳出这个switch,所以只输出一个b。
建议 :我们写代码的时候最好在每个case后面都加上一个break。
五、迭代语句
迭代语句就是我们所说的循环,C++中的迭代语句有这样的三种,for语句, while 语句, do while 语句。
while语句
语法形式
while (condition) statement;
只要条件为真,就会执行循环体内的语句。
for语句
语法形式
for(init-statement; condition; expression) statement;
init-statement 负责初始化一个值,这个值是会伴随着循环二改变的, condition是判断条件,如果条件满足就会执行循环体内的语句,也就是statement, 然后expression会修改init_statement初始化的这个值。
do while语句
语法形式
do statement; while(condition);
do while 语句首先执行一次循环体,然后在判断条件是否满足。
【注意】:while后面的分号不要漏掉!
do while和 while 的区别do while至少执行一次循环体。先执行,后判断
while 先判断后执行。
六、跳转语句
1、break语句
break语句负责终止离它最近的while 、do while、 switch、 for语句,并且从这些语句之后的第一条语句开始执行。
2、continue语句
continue语句负责终止离它最近的循环中的当且迭代,并且开始下一次迭代。
【注意】continue 只能出现在while 、 do while 、for语句中,或者嵌套在此类循环里的语句或者块的内部。
break语句和continue语句的区别:
break:结束循环,并且跳出整个循环体,从循环的下一条语句开始执行。
continue:结束当前循环,并且从下一个循环开始,不会跳出整个循环体。