C控制语句:循环

 

1.summing.c程序

//summing.c--根据用户键入整数求和
#include<stdio.h>
int main(void)
{
    long num;
    long sum = 0L;    //把sum初始化为0
    int status;

    printf("please enter an integer to be summed");
    printf("(q to quit):");
    status = scanf("%1d", &num);
    while (status == 1)//==的意思是等于
    {
        sum = sum + num;
        printf("please enter next integer (q to quit):");
        status = scanf("%1d", &num);
    }
    printf("those integers sum to %1d.\n", sum);

    return 0;
}

程序注释:statues==1

==运算符是C的相等的运算符(equality operator),该表达判断status是否等于1,status==1是测试条件,status =1是把1赋给statues.

该程序结构(伪代码)

把sum初始化为0

提示用户输入数据

读取用户输入数据

当输入的数据为整数时

输入添加给sum,

提示用户输入

然后读去下一个输入

while 语句

while循环通用语句如下:

while(expression)

   statement

statement部分可以是以分号结尾的简单句,也可以是用花括号括起来的复合语句。expression可以是值之间的比较,可以使用任何表达式,如果expression为真,执行statement一次,然后再判断expression。在expression为假之前,循环的判断和执行一直重复进行。

终止while循环

在构建while循环时,必须让测试表达式的值有变化,表达氏最终要为假,否则,循环就不会终止‘

优先级与关系运算

优先级由高到低排列:算数运算符    关系运算符     赋值运算符

关系运算符之间有两种不同的优先级
高级优先组:<<=   >>=

低优先级组:==     !=

与其他大多数运算符一样,关系运算符的结合律也是从左往右。因此ex !  =wye==zee与(ex !=wye)==zee相同

运算符(优先级从高至低)结合律
()从左往右
-    +     ++    --    sizeof 从右往左
*  /  %从左往右
+     _从左往右
<   >    <=     >=从左往右
==   !=从左往右
=从右往左

不确定循环和计数循环

//swetiel.c--一个计数循环
#include<stdio.h>
int main(void)
{
    const int NUMBER = 22;
    int count = 1;             //初始化
    while (count <= NUMBER);        //测试
    {
        printf("by my valentine!\n");   //行为
    count++;                          //更新计数
    }
    return 0;
}
在创建一个重复执行固定次数的循环中涉及3个行为

1.必须初始化计数器

2.计数器与有限个值作比较;

3每次循环时递增计数器

FOR循环(把上述3个行为 :初始化  测试和更新结合在一起)

使用for语句改后的程序

//swetiel.c--使用for循环的计数循环
#include<stdio.h>
int main(void)
{
    const int NUMBER = 22;
    int count;
    for (count = 1; count <= NUMBER;count++);      
    
        printf("by my valentine!\n");   
    
    
    return  0;

}

利用for的灵活性

环的灵活性源于源于如何使用for循环的3个表达式

  • 可以使用递减运算符来递减计数器:for(secs=5;secs>0;secs--);
  • 可以让计数器递增:for(n=2;n<60;n=n+13);
  • 可以用字符替代数字记数:for(ch='a';ch<='z';ch++)
  • 除了测试迭代次数外,换可以测试其他条件,在for_cube程序中可以把for(num=1;num<=6;num++)替换成 for (num=1;num*num*num<=216;num++)
  • 可以让递增的量几何增长,而不是算术增长。也就是说每次都乘上而不是加上一个量for(debt=100.0;debt<150.0;debt=debt*1.1)
  • 第三个表达式可以使用任意的合法表达式。无论是什么表达式,每次迭代都会更新该表达式的值for(x=1;y<=75;y=(++x*5)+50)
  • 可以省略一个或多个表达式
  • 第一个表达式不一定是给变量赋给初值,也可以使用printf()。在执行循环其他部分之前,只对第一个表达式求值一次或执行一次。for(printf("keep entering numbers!\n");num != 6;)scanf ("%d",&num)
  • 循环体中的行为可以改变循环头中的表达式for(n=1;n<10000;n=n+delta)

其他赋值运算符 :+=      -=   *=       /=    %=

C语言中有许多赋值运算符。最基本、最常用的是=,他把右侧表达式的值付给左侧变量。其他赋值运算符都用于更新变量,其用法都是左侧是一个变量名,右侧是一个表达式。赋给变量的新值是根据右侧表达式的值,确切的调整方案取决于具体的运算符。

逗号运算符:逗号运算符扩展了for的灵活性,以便在循环中包含更多的表达式。

 

 

 


 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值