c语言7种控制3种循环,第6章 C控制语句:循环

C语言的流程控制:顺序、循环、分支。循环结构:while循环、for循环和do while循环。

6.1再探while循环

status = scanf(“%ld”,&num);

while(1 == status )  //判断条件

{

sum = sum + num;

status = scanf(“%ld”,&num);//返回成功读入的项目的个数。

}

Scanf的两个功能:第一个,使用scanf()尝试为num读入新值

第二个,使用scanf()的返回值来报告执行是否陈功。

如果成功scanf成功读入一个整数,就把这个整数放在num中并返回值1,任何非数字输入都会使循环终止。

while循环是一个入口条件循环,程序必须在进入循环体之前获取输入并检查status的值。

替换为while(scanf(“%ld”,&num) == 1);

6.2 while语句

while(expression) //只关心expression的真假

Statement

1、入口条件的有条件循环,进入循环体之前必须满足这个条件。

2、循环何时终止,只有在计算判断条件的值时才决定是种植循环还是继续执行  循环三要素:初始条件 判断条件  改变判断值

6.3 关系运算符和表达式

1、while循环经常要依赖进行比较的判断表达式,关系表达式。这些语句检查表达式为真还是为假。   每个关系表达式都被判定为真或为假。(永远没有也许)

2、关系运算符  >  >=  

3、C语言中什么是真?

C的表达式通常具有一个值,关系表达式也是如此。

true_val = (10 > 2);  //一个真表达式的值  true_val = 1

false_val = (10 == 2);//一个假表达式的值  false_val = 0

对于C语言来说,一个真表达式的值为1,一个假表达式的值为0。

C语言中,所有的非零值都被认为是真,只有0被认为是假。C对真的范围放的很宽!要谨记关系表达式为真,它的值为1;如果为假,它的值为0。

while(goats != 0)   等价于  while(goats)

4、真值的问题

while(status = 1){    };

status = 1为赋值语句,复制表达式的值就是其左侧的值,这样status = 1的值也为1。实际这个循环就是while(1),死循环。

注意:不要在应该使用 == 的地方使用 = 。

5 = canoes  语法错误

5 == canoes  检查canoes的值是否为5    总之,关系运算符被用来构成关系表达式。关系表达式为真时值为1,为假时值为0。使用关系表达式作为判断条件的语句。

5、新的_bool变量

#include   //如果没有此头文件    bool代替_Bool,并把true和false定义为1和0的符号常量。  bool true  false

#defined bool  int   #define true  1    #define  false  0

表示真假的变量开始被称为布尔变量。一个布尔变量只可以具有值1(真)或0(假)。

6、运算符的优先级

6.4 不确定循环与计数循环

1、不确定循环。  有些while循环的例子是不确定循环,在表达式为假之前你不能预先知道循环要执行多少次。  例如:6.1使用交互式的循环来计算整数和

2、计数循环。  循环执行预先确定的次数。

a、初始化计数器  b、计数器与某个有限的值进行比较  c、每次执行循环计数器的值都要进行递增。

6.5 for循环

for循环把初始化、判断条件、更新都放在一起。

形式:for(初始化;判断条件;更新参数)

statement;

1、for循环的灵活性

a、你可以使用减量运算符来减小计数器而不是增加它

for(a = 5; a > 0; a--)

b、你可以将计数器依次加2、加10等

for(n = 2; n 

c、字符代替数字进行计数

for(ch = ‘a’; ch <= ‘z’;ch++);

d、判断迭代次数之外的条件

for(a = 1; a*a*a <= 216; a++)

e、几何增加而不是算术增加,不是加上一个固定的数,而是乘上一个固定数

for(n = 2; n 

f、在第三个表达式中,你可以使用所需的任何合法表达式。

for(x = 1; y <= 75; y = (++x * 5) + 50);

g、循环中的动作可以改变循环表达式的参数。

for(n = 1; n 

6.6 赋值运算符

+=  -=   *=  /=  %=

逗号运算符

1、它保证被他分开的表达式从左到右的次序进行计算(逗号是个顺序点,逗号左边产生的左右副作用都在程序运行到右边之前生效)

2、逗号表达式是最后一个值作为整个表达式的值。

x = (y = 3, (z = ++y + 2) + 5);

3、houseprice = 249,500; 这并没有语法错误。C把它解释成为逗号表达式,左子表达式,右子表达式,整个表达式的值就是右边表达式的值。

Houseprice = (249,500);     逗号也经常被用作分隔符号。

6.7 选择哪种循环

首先确定入口条件循环还是退出条件循环,通常是入口条件循环。若干原因科学家认为入口条件循环更好一些。但是用while还是用for.

while循环对以下的条件是自然的:

while(scanf(“%ld”,&num) == 1);

for对于涉及到用索引计数的循环,涉及到初始化和更新变量时。

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

6.8 嵌套循环

嵌套循环指的是在另一个循环之内的循环。通常使用嵌套循环来按行按列显示数据。也就是说一个循环处理一行中所有的列,而另一个循环则处理所有的行。

1、内部循环在外部循环的每次单独循环中都完全执行它的所有循环。

2、嵌套变化。内部循环一部分依赖于外部循环,可以使内部循环在每个周期中的表现不同。依赖于外部循环的次数。const代替 #define

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值