博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c语言之控制语句:循环
阅读量:4610 次
发布时间:2019-06-09

本文共 6098 字,大约阅读时间需要 20 分钟。

#include
int main(void){ long num; long sum = 0L; int status; printf("Please enter an integer to be summed:"); printf("(q to quit):"); status = scanf_s("%ld", &num); while (status) { sum = sum + num; printf("Please enter next integer (q to quit):"); status = scanf_s("%ld", &num); } printf("Those integers sum to %ld.\n", sum); system("pause"); return 0;}
status = scanf_s("%ld",&num);while(status=1){    /*循环行为*/    status = scanf_s("%ld",&num)}//替换代码while(scanf_s("%ld",&num)=1){    /*循环行为*/    status = scanf_s("%ld",&num)}

while语句

while(expression)statement

statement部分可以是以分号结尾的简单语句,也可以是用花括号括起来的复合语句。其中,如果expression为真,执行。

在构建while循环时,必须让测试表达式的值有所变化。

while(expression)printf("sth");//如果没有花括号,只有紧跟着while后面的第一条语句才算循环other statement
/*不加分号*/#include
int main(void){ int n = 0; while (n++ < 3) printf("n is %d\n", n); printf("That's all this program does.\n"); system("pause"); return 0;}/*result:n is 1n is 2n is 3That's all this program does.*//*加分号*/#include
int main(void){ int n = 0; while (n++ < 3); //加分号则会让编译器认为这句号是单独的一句 printf("n is %d\n", n); printf("That's all this program does.\n"); system("pause"); return 0;}/*result:n is 4That's all this program does.*/

用关系运算符和表达式比较大小

运算符 含义
< 小于
<= 小于或等于
== 等于
>= 大于或等于
> 大于
!= 不等于

注:当使用浮点数时,尽量只是用“<”或“>”,因为浮点数的舍入误差会导致在逻辑上应该相等的两数却不相等。

value_1 == value_! //判断value_1 = value_2  //赋值
#include
#include
int main(void){ const double ANSWER = 3.14159; double response; printf("What is the value of pi?\n"); scanf_s("%f", &response); while (fabs(response - ANSWER) > 0.0001) //fabs()函数取绝对值 { printf("Try again!\n"); scanf_s("%lf", &response); } printf("Close enough!\n"); system("pause"); return 0;}
新的_Bool类型
#include
int main(void){ long num; long sum = 0L; _Bool input_is_good; //定义Bool类型 printf("Please enter an integer to be summed"); printf("(q to quit):"); input_is_good = (scanf_s("%ld", &num) == 1); while (input_is_good) { sum = sum + num; printf("Please enter next integer(q to quit):"); input_is_good = (scanf_s("%ld", &num) == 1); } printf("Those integers sum to %ld.\n", sum); return 0;}
优先级和关系运算符

高优先级组:<、<=、>、>=

低优先级组:==、!=

不确定循环和计数循环

#include
int main(void){ const int NUMBER = 22; int count = 1; while (count <= NUMBER) { printf("Be my Valentine!\n"); count++; } system("pause"); return 0;}

for 循环

#include
int main(void){ const int NUMBER = 22; int count = 1; for (count = 1; count <= NUMBER; count++)//第一个是表达式初始化,第二个是测试条件,第三个是表达式执行更新。 printf("Be my Valentine!\n"); system("pause"); return 0;}
#include
int main(void){ char ch; for (ch = 'a'; ch <= 'z'; ch++) printf("The ASCII value for %c is %d.\n", ch, ch); system("pause"); return 0;}

可以省略一个或多个表达式(但是不能省略分号),只要在循环体中包含能结束循环的语句即可。另外,第一个表达式不一定要给变量赋初值,也可以使用printf()。但是,在执行循环体的其他部分之前,只对第一个表达式求值一次或执行一次。

#include
int main(void){ int num = 0; for (printf("Keep entering number!\n"); num != 6;) scanf_s("%d", &num); printf("That's one I want!\n"); return 0;}

其他赋值运算符

表达式 含义
scores += 20 scores = scores + 20
dimes -= 2 dimes = dimes - 20
bunnies *= 2 bunnies = bunnies * 20
time /= 2.73 time = time / 2.73
reduce %= 3 reduce = reduce % 3

逗号运算符

#include
int main(void){ const int FIRST_OZ = 46, NEXT_OZ = 20; int ounces, cost; printf("ounces cost\n"); for (ounces = 1, cost = FIRST_OZ; ounces <= 16; ounces++, cost += NEXT_OZ) //同时有多个值,且从左到右顺序执行 printf("%5d $%4.2f\n", ounces, cost / 100.0); system("pause"); return 0;}
houseprice = 249,500 //分为houseprice=249和500这两条表达式语句houseprice =(249,500)//等于houseprice=500char ch,date;//分隔符

出口条件循环:do while

#include
int main(void){ const int secret_code = 13; int code_entered; do { printf("To enter the yuan therapy clud,\n"); printf("please enter the scret code number:"); scanf_s("%d", &code_entered); } while (code_entered != secret_code); printf("Congratulation! You are cured!\n"); system("pause"); return 0;}/*dostatementwhile (expression);*/

do while循环在执行完循环体后才执行测试条件,所以至少执行循环体一次,while循环体适用于那些至少要迭代一次的循环。

嵌套循环

/*打印字母串*/#include
#define ROWS 6#define CHARS 10int main(void){ int row; char ch; for (row = 0; row < ROWS; row++) { for (ch = 'A'; ch < ('A' + CHARS); ch++) printf("%c", ch); printf("\n"); } system("pause"); return 0;}

数组

float debts[n];//声明一个含有20个元素的数组debts[n]=num;//为数组元素赋值,编译器不会查找元素不在等的错误

用于识别数组元素的数字被称为下标、索引或偏移量。

/*打印字母串*/#include
#define SIZE 10#define PAR 72int main(void){ int index, score[SIZE]; int sum = 0; float average; printf("Enter %d golf scores:\n", SIZE); for (index = 0; index < SIZE; index++) scanf_s("%d",&score[index]); printf("\n"); for (index = 0; index < SIZE; index++) sum += score[index]; average = (float)sum / SIZE; printf("Sum of scores = %d,average = %.2f\n", sum, average); printf("That's a handicap of %.0f.\n", average - PAR); system("pause"); return 0;}

使用函数返回值的循环

#include
double power(double n, int p); /*C编译器运行到这里还不知道power函数是什么,所以要先声明该函数的返回值类型等,而如果该函数写在main函数的前面,则不需要在此处声明该函数*/int main(void){ double x, xpow; int exp; printf("Enter a number and the positive integer power"); printf(" to which\nthe number will be raised. Enter q"); printf(" to quit.\n"); while (scanf_s("%lf%d", &x, &exp) == 2) { xpow = power(x, exp); printf("%.3g to the power %d is %.5g.\n", x, exp, xpow); printf("Enter next pair of numbers or q to quit.\n"); } printf("Hope you enjoyed this power trip -- bye!\n"); system("pause"); return 0;}double power(double n, int p){ double pow = 1; int i; for (i = 1; i <= p; i++) pow *= n; return pow;}

转载于:https://www.cnblogs.com/MingleYuan/p/10628540.html

你可能感兴趣的文章
java获取指定文件夹下的所有文件名
查看>>
Spring学习十一
查看>>
LayIM.AspNetCore Middleware 开发日记(六)嵌入资源的使用,layim.config的封装
查看>>
CMD网络连接命令
查看>>
2017 计蒜之道 初赛 第六场 !
查看>>
js函数
查看>>
二叉排序树转化平衡二叉排序树(转载)
查看>>
ios 改变状态栏颜色
查看>>
asp.net对List<string>列表排序的写法
查看>>
黑盒测试学习笔记
查看>>
DVWA学习笔记-----环境搭建
查看>>
UITabBarController
查看>>
help is needed for dexter uva 11384
查看>>
拖拽+碰撞+重力
查看>>
[UVA 11624] Fire!
查看>>
JS产生四位随机数的方法
查看>>
Android——AnimationDrawable 实现动画
查看>>
Mysql执行计划说明
查看>>
BUG笔记:Firefox select选项右侧边框没了
查看>>
1-1 统计数字问题【计算机算法设计与分析】
查看>>