C语言分支与循环语句学习笔记
C语言分支与循环语句学习笔记
C语言是一门强大而灵活的编程语言,其基础构建块之一就是分支语句和循环语句。这些语句为程序提供了灵活性和控制流程的能力。本文将记录学习C语言中分支和循环语句的各个方面,包括语法、用法、和示例。
分支语句
1. if语句
C语言中的if语句允许根据条件执行不同的代码块。语法如下:
x
1if (condition) {2 // 在条件为真时执行的代码3} else {4 // 在条件为假时执行的代码5}6
7if(condition) 8 printf("hehe\n");9 printf("endl\n");10//忽略花括号:在单行if语句中,忽略花括号只会执行第一行代码 `printf("hehe\n");`11//第二行代码`printf("endl\n");` 不在if语句执行范围内,意思就是即使condition==0 `printf("endl\n");`会照样执行12//所以建议养成一个编程习惯,始终使用花括号。2. switch语句
switch语句允许根据表达式的值选择多个可能的执行路径。语法如下:
x
1switch (expression) {2 case constant1:3 // 与 constant1 匹配时执行的代码4 break;5 case constant2:6 // 与 constant2 匹配时执行的代码7 break;8 case constant3:9 // 与 constant3 匹配时执行的代码10 //注意 代码如果没有加 break 语句,执行完后会继续向下执行到constant4语句11 case constant4:12 // 与 constant3 匹配时执行的代码13 break;14 // 更多 case 语句15 default:16 // 如果没有匹配的情况执行的代码17}18
19//需要注意:20//case和default没有先后顺序的要求21//缺少break:忘记在每个case结束时添加break语句可能导致多个case被执行。每个case结束后,务必添加break。循环语句
1. while循环
while循环在条件为真时反复执行一段代码块。语法如下:
xxxxxxxxxx1while (condition) {2 // 在条件为真时反复执行的代码3 printf("hehe\n")4}5//无限循环:忘记在循环体内更新循环控制变量可能导致无限循环。2. for循环
for循环提供了一种紧凑的方式来表示循环,它包含初始化、条件和迭代表达式。语法如下:
x
1for (initialization; condition; iteration) {2 // 在条件为真时反复执行的代码3}4
5//在for循环中声明的变量只在循环内可见。在循环外使用可能导致编译错误。6for(int i=0;i<5;i++){7 ...8}9i=10; //这里无法访问i,操作错误10
11
12int j=0;13for(j=0;j<5;j++){14 ...15}16j=103. do-while循环
do-while循环先执行一次代码块,然后根据条件反复执行。语法如下:
xxxxxxxxxx1do {2 // 至少执行一次的代码3} while (condition);4//无条件执行一次:do-while循环至少执行一次,即使条件为假。确保循环体内的代码能够处理这种情况。控制语句
1. break语句
break语句用于跳出循环或switch语句。它提供了一种有条件地终止循环的方式。
xxxxxxxxxx1while (condition) {2 if (someCondition) {3 break; // 跳出循环4 }5}1for (int i = 0; i < 5; i++) {2 for (int j = 0; j < 5; j++) {3 if (condition) {4 break; // 只会跳出内层循环5 }6 }7}8
9//注意的是 break只能挑出单层循环,如果签到的循环太多的话,可以尝试使用goto语句跳出循环
2. continue语句
continue语句用于结束当前循环迭代,并开始下一次迭代。
xxxxxxxxxx141for (int i = 0; i < 10; i++) {2 if (i % 2 == 0) {3 continue; // 跳过偶数迭代4 }5 // 在奇数迭代时执行的代码6}7
8
9for (int i = 0; i < 5; i++) {10 while (condition) {11 continue; // 只会影响while循环12 }13}14//continue只会影响当前所在的循环,不会跳到外层循环。示例:
x
12
3int main() {4 // 示例:使用循环计算阶乘5 int n = 5;6 long long factorial = 1;7
8 for (int i = 1; i <= n; i++) {9 factorial *= i;10 }11
12 printf("Factorial of %d = %lld\n", n, factorial);13
14 // 示例:使用switch语句判断季节15 int month = 8;16 switch (month) {17 case 12:18 case 1:19 case 2:20 printf("Winter\n");21 break;22 case 3:23 case 4:24 case 5:25 printf("Spring\n");26 break;27 case 6:28 case 7:29 case 8:30 printf("Summer\n");31 break;32 case 9:33 case 10:34 case 11:35 printf("Autumn\n");36 break;37 default:38 printf("Invalid month\n");39 }40
41 return 0;42}43
xxxxxxxxxx12
3int main() {4 int sum = 0;5 int count = 0;6 int number;7
8 while (1) {9 printf("输入一个数字 (0 to exit): ");10 scanf("%d", &number);11
12 if (number == 0) {13 break; // 跳出循环14 }15
16 sum += number;17 count++;18 }19
20 if (count > 0) {21 double average = (double)sum / count;22 printf("Average: %.2lf\n", average);23 } else {24 printf("No numbers entered.\n");25 }26
27 return 0;28}29
评论
发表评论