C_基础_第四章 选择、循环结构
一.if语句
1.单分支结构
-
-
格式1: if(<表达式>)语句1; //语句1, 说明:只一条语句。 如果表达式为真, 执行语句1; 否则什么都不做; 格式2: if(<表达式>) { 语句块1; }
-
2. 双分支结构 if… else语句
-
-
格式: if (<表达式>) 语句1; else 语句2; 说明: 如果表达式为真, 执行语句1; 否则执行语句2 else子句是if语句的一部分,它不能作为语句单独使用, 必须与if配对使用。
-
3.多分支结构 if … else if 语句
-
-
格式: if() { 语句块1; } else if() { 语句块2; } … else 是不能跟条件的 { 语句块n; } 格式说明 1.表达式一般为逻辑表达式或关系表达式, 也可以是任意的数值类型。 2.else子句不能脱离if子句而存在, 下面写法是错误的。
-
4.if语句的嵌套
else与if必须成对出现, 且else总是与最近的一个未配对的 if 配对

如果 if与else的数目不同, 为实现指定的操作, 可以加花括号来确定配对关系。

内层的选择结构必须完整地嵌套在外层的选择结构内, 两者不允许交叉。
二、switch语句
也称开关语句。多选一,同多分支类似 但是可读性比多分支强 一般做菜单程序等使用
-
-
格式: switch(表达式) { case 常量表达式1: 语句组1; break; case 常量表达式2: 语句组2; break; …… case 常量表达式n: 语句组n; break; default 语句n+1; } 说明:各个case包括(default)的出现次序可以任意。在每个case分支都带有break的情况下, case次序不影响执行结果。 case 和 default的 顺序 可以任意 不能用浮点型是因为 浮点数不可以用来精确比较
-
三、循环
循环结构也称重复结构, 是指在程序执行过程中需要反复执行的程序段。
循环语句有三种:
while语句
for语句 无条件循环
do—while语句
-
while循环
- 格式

- 特点: 先判断, 再执行, 有可能一次也不执行。
- 说明:
1. 表达式必须用一对圆括号括起来, 如果循环体包含一条以上的语句应用花括号括起来。
2. 在循环体内必须修改循环变量的值, 否则死循环。
3. 在循环体中, 循环变量的值可以被引用、修改,但不能另赋新值。
4.若表达式只用来表示等于零或不等于零的关系时, 条件表达 式可以简化成如下形式:
while (x!=0) 可写成 while (x)
while (x==0) 可写成 while (!x)
5. 循环体通常是一个复合语句, 但也可以是一个空 语句或单个语句。
如: 空语句: while (x++<10000) ; //分号不能省
单语句: x=10 ; while(x-->0)printf(“%d”, x);
-
do-while循环
do-while语句用来实现“直到型”循环结构
格式: do 循环体语句 while(<表达式>) ;

-
for循环
- 格式

(1) 省略表达式1, 此时应在for语句之前给循环变量赋初值, 并且分号不能省略。
如: i=1 ;
for ( ; i<=100 ; i++)
(2)省略表达式2, 则认为循环条件始终为真, 程序将陷入死循环。
如: for( i=1 ; ; i++ )
{
sum+=i ; if (i>=100) break;
}
(3)表达式3可省略, 此时应在循环体内对循环变量进行修改, 以保证循环能正常结束。
如, 求和运算: for ( i=1 ; i<=100; ) //分号不能省略
sum+=i++ ; //修改循环变量
(4)三个表达式都省略, 此时应在循环体内对循环变量进行修改, 用break语句终止循环。
如, 求和运算: i=1 ;
for ( ; ; )
{ sum+=i++ ;
if ( i >100 ) break ; }
(5)表达式1、3都可以有一项或多项, 若有多项则使用逗号表达式。
如, 求和运算: for ( s=0, i=1 ; i<=100; i++) s+=i ;
for (s=0, i=1; i<=100; s+=i, i++) ;
本质执行顺序是相同的,while循环一般用于不知道循环次数的时候,
如果使用for循环 也可以做,但是 for( ; ; )会造成for循环头中有一个部分缺省
-
break和contiune
break语句
格式: break ;
作用: 提前退出某个循环或跳出switch结构。 退出当前switch语句 退出当前循环(在循环体中break语句与if语句搭配使用)
continue语句
格式: continue ;
作用: 结束本次循环, 不在执行continue语句之后的循环体 语句, 使程序回到循环条件, 接着进行下一次是否执行 循环的判定。
说明: 只能用于循环结构中, 常与if语句联合起来使用, 以便 在满足条件时提前结束本次循环。
注意: 在while和do-while结构中, 在continue语句被执行 之后立即进行循环条件的测试;
在for结构中, 表达式 3被执行之后,然后进行循环条件的测试。
- 循环必须注意:
1,while循环容易编写出错。两个while循环并列的时候,因为第一个while循环,已经把循环变量给改了,当运行第二个循环的时候,别忘记初始化。
2,for循环因为第一个表达式就是循环变量初始化的位置,所以程序员不会忘记写,出错几率小一些。同时,我们要记住for循环的执行次序。
3,三条循环语句可以互相替代使用,但是还是有一些方便性的差别。for循环常用于有明确的开始值和结束值和循环变量的步长。
while 循环常用于不容易知道开始值和结束值和步长的情况,循环次数是根据中间运算结果决定的。这种情况,有可能一次都不执行,这样的情况。
`` do while 循环常用于不容易知道开始值和结束值和步长的情况,循环次数是根据中间运算结果决定的而且,至少需要先执行一次,这样的情况。
4,while 和 for 是先判断然后执行的,我们叫他当型循环。do while 是先执行然后判断的,我们叫他直到型循环。

浙公网安备 33010602011771号