《C程序设计语言》——控制结构初识

控制结构分为:循环,顺序,选择三种!此处着重讨论,循环,选择!

首先先看以一下,循环控制结构的语句:

1.     goto (C 中设计到),用法:

     形式:goto 语句标号!

 

2.    while

形式:while ( 表达式 )语句

例如:   i  = 1 ;

            sum =o;

            while(i <= 100)

            {

                  sum= sum + i ;

                  i++;

}

执行过程:当表达式为非0 值时候,执行while 语句中的内嵌语句。

(先判断表达式,后执行语句)

 

3.     do ----while

do

      循环体语句

while表达式);

执行过程:

      先执行一次指定的 循环体语句

      然后,判别表达式,当表达式的值为非零(真)时,返回重新执行循环体语句,

如此反复,直到表达式的值等于0为止,此时循环结束。

while  和 do while 的区别:


可以看到:

当输入:1 时,两者结果相同;

当输入:11时,两者结果不同;

原因在于:对于 while循环来说,当输入11时表达式 i <= 10时,条件为假,不进循环体。

对于do –while 循环来说,当输入 11 时,先执行循环体一次,然后判断表达式的真假!

 

1.  for()


形式:

for ( 表达式 1 表达式 2 ;表达式 3 )语句

for ( 循环变量赋初值;循环条件循环变量增值 )语句

eg:

   for ( i = 1 ; i <= 100 ; i ++ )

 sum = sum+ i ;

 

执行过程:

1.    先求解表达式1

2.    求解表达式2,若其值为真(值为非0),则执行for 语句中指定的内嵌语句,然后执行下面第(3)步。若为假(值为0),则结束循环,转到第(5)步;

3.    求解表达式3

4.    转回上面第(2)步骤继续执行;

5.    循环结束,执行for 语句下面的一个语句;


1,变量有自己的作用域。

对于for来讲:如果将用于控制循环的增量定义在for语句中。那么该变量只在for语句内有效。

    for语句执行完毕。该变量在内存中被释放。// 变量的作用域

 

 

     2for和while可以进行互换。如果需要定义循环增量。用for更为合适。

     x在内存中停留的时间不一样

    

     总结:

     什么时候使用循环结构?

     当要对某些语句执行很多次时,就使用循环结构。



至此,所有的循环已经讨论完毕,下面我们看看:break 和 continue 语句吧:

 

在while ,do –while , for ,循环中,可以用 break 语句跳出循环,


 break


break 语句不能用于 循环语句 和 switch 语句之外的任何 其他语句中。


continue


continue作用为 结束本次循环 ,即跳过循环体中下面尚未执行的语句,接着进行下一次是否执行循环的判定;

 

 

区别:

continue 只结束本次循环,不终止整个循环的执行。

break 结束整个循环过程,不再判断执行循环的条件是否成立。


至此,循环结构以讨论完毕,下面我们看看:选择结构。

 if语句 :


 三种形式:

1.   if(表达式)语句


2.   if(表达式)

语句1 ;

     else

语句2;


3.  

 if(表达式)语句1

else if(表达式2)语句2

--

else if(表达式m)语句m

else 语句n

 

说明:

1.  3种形式的if 语句中在if后面都有表达式,一般为 逻辑表达式 或 关系表达式。在执行if语句时,先对表达式求解,若表达式的值为 0 ,按 假 处理,若表达式值为 非 0 , 按 真 处理,执行指定的语句。

表达式类型不限于逻辑表达式,可以是任意的数值类型(包括整型,实型,字符型,指针类型)

2. 最后一个else 部分用于处理“上述条件均不成立”的情况 或默认情况,也就是当上面各条件都不满足时的情形。有时候不需要针对默认情况执行显示操作,这种情况下,可以把该结构末尾的else 省略掉。(用于检查错误,以捕获“不可能”的条件!)

 

条件运算符:

形式:

      表达式1 ?表达式 2 :表达式 3 ;

 执行过程:

   先求解表达式 1 ,若为非0 (真)则求解表达式2 ,此时表达式2的值作为整个条件表达式的值。否则,表达式3的值为整个  条件表达式的值。

 

说明:

1. 优先级:条件运算符  优先于  赋值运算符

                   低于   关系 和 算术 运算符。

2.  条件运算符结合方向: 自右至左。

3.  表达式2 和 表达式3 不仅 可以是 数值表达式,还可以是赋值表达式或 函数表达式。

if else 结构 简写格式:

 变量 = (条件表达式)?表达式1:表达式2;

    

     三元运算符:

        好处:可以简化if else代码。

        弊端:因为是一个运算符,所以运算完必须要有一个结果。

 

swith 语句:

形式;

 

swith (表达式)

{

      case常量表达式1:语句1

      case常量表达式2:语句2

      case常量表达式3:语句3

 

      case常量表达式n:  语句n

      default:            语句 n + 1

 

}

 

说明:

(1),swith 后面括号中的“表达式”,ANSI标准允许它为任何类型。

           (这点和Java不同,swith 只允许它为byte, short ,int ,char)

(2)        最后一个分支(dafault)可以不加break 语句

if和switch语句很像。

     具体什么场景下,应用哪个语句呢?

     如果判断的具体数值不多,而是符合byte(Java特有,C语言中没有) shortint char这四种类型。

     虽然两个语句都可以使用,建议使用swtich语句。因为效率稍高。

 

     其他情况:对区间判断,对结果为boolean(Java中有,C语言没有,但C语言用“1”和“0”来判断)类型判断,使用if,if的使用范围更广。

 

至此,所有的控制结构已经讨论完毕,在这个过程中设计到表达式,我们有必要看看:

表达式:关系表达式,逻辑表达式

关系表达式 有涉及到 关系运算符:

   关系表达式的值是一个逻辑值,即“真”或“假”,以“1”代表“真”,以“0”代表“假”

逻辑表达式:

   逻辑表达式的值为一个逻辑量,“真”或“假” ,以“1”代表“真”,以“0”代表“假”,但是,在判断一个量是否为“真”时,以“0”代表“假”,以非0代表“真”。、

 

逻辑运算符两侧的运算对象不但可以是0和1,或者是 0 和非0 的整数,也可以是字符型,实型或指针型。

 

     

 

 



 


 





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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值