目录
一、分支语句(选择结构)
1.if 语句
1)语法结构
1.单分支
if (表达式) 语句;
2.双分支
表达式起判断作用,若表达式为真,执行语句1;若表达式为假,则执行语句2;(C语言中 0表示假,非0表示真)
if (表达式) 语句1; else 语句2;
3.多分支
if 语句后面只有一个 else,但可以有多个 else if ,else必须位于else if 的后面,同时一旦有其中的一个表达式正确,执行的当前语句后直接结束。
if (表达式1) 语句1; else if (表达式2) 语句2; else if (表达式3) 语句3; else if (表达式4) 语句4; ....... else 语句n;
4.嵌套语句
在 if 和 else 语句中默认都控制一条语句,所以在嵌套过程中对 if 所控制的语句一定要用 {} 给括起来,同理,else后所控制的语句也要用 {} 给括起来。
if (表达式1) { if (表达式2) { if (表达式3) 语句1; } else if (表达式4) { if (表达式5) 语句2; else 语句3; } else 语句4; } else if (表达式6) 语句5; else { if (表达式7) 语句6; else 语句7; }
2)例题
例题一 单分支
输入一个成绩,判断是否大于等于六十,若是,则输出该成绩,否则不输出。
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main() { int a = 0; scanf("%d", &a); if (a >= 60) //为养成良好的习惯,书写时尽量在if和else后面都是用{} { printf("%d", a); } return 0; }
例题二 双分支
输入一个成绩,判断是否及格,并输出结果(及格或不及格)
#include <stdio.h> int main() { int a = 0; scanf("%d", &a); if (a >= 60) { printf("成绩及格"); } else { printf("成绩不及格"); } return 0; }
例题三 多分支
输入一个成绩,判断该成绩所处的层次,0-59输出不及格,60-69输出及格,70-79输出中,80-89输出良,90-100输出优
#include <stdio.h> int main() { int a = 0; scanf("%d", &a); if (a <= 59) { printf("不及格"); } else if(a<=69) { printf("及格"); } else if (a <= 79) { printf("中"); } else if (a <= 89) { printf("良"); } else { printf("优"); } return 0; }
例题四 嵌套语句
输入两个成绩,只有两门成绩均位于90分以上才会输出优秀,否则输出无。
#include <stdio.h> int main() { int a = 0, b = 0; scanf("%d %d", &a, &b); if (a >= 90) { if (b >= 90) { printf("优秀"); } } return 0; }
2.switch语句
1)语法结构
switch判断,case 决定入口,break 决定出口,直接跳出当前语句,若输入的信息错误则会跳到default。只要逻辑恰当,case顺序可以调整,default如果不在最后,应在后面添break;
重点:Switch表达式中只能是整形和枚举类型!!!
switch (表达式) { case 常量1: 语句1; break; case 常量2: 语句2; break; … case 常量n: 语句n; break; default: 语句n + 1; break; }
2)例题
例题一
输入一个数字,判断当前是星期几
#include <stdio.h> int main() { int day = 0; scanf("%d", &day); switch (day) { case 1: printf("星期⼀\n"); break; case 2: printf("星期⼆\n"); break; case 3: printf("星期三\n"); break; case 4: printf("星期四\n"); break; case 5: printf("星期五\n"); break; case 6: printf("星期六\n"); break; case 7: printf("星期天\n"); break; default: printf("输⼊错误\n"); break; } return 0; }
例题二
输入一个数字,判断当前是工作日还是休息日
#include <stdio.h> int main() { int day = 0; scanf("%d", &day); switch (day) { case 1://case只决定的是入口,不决定出口,如果无break,则会一直执行完switch case 2://如果不写break会一直执行下去,直到遇到break case 3: case 4: case 5: printf("⼯作⽇\n"); break; case 6: case 7: printf("休息⽇\n"); break; default: printf("输⼊错误\n"); break; } return 0; }
二、循环语句
1.while循环
1)语法结构
//表达式为真,执行循环语句 while (表达式) { 循环语句; }
while首先上来先执行判断表达式,若表达式的值为0,则循环直接结束;若表达式的值不为0,则执行循环语句,语句执行完再继续判断,判断结果决定是否执行下一次循环语句,所以while语句的条件表达式的执行次数总是比循环体的执行次数多一次。
2)例题
例题一
在屏幕上打印1-10的值
#include <stdio.h> int main() { int n = 1; while (n <= 10) { printf("%d ", n); n++; } return 0; }
例题二
输入一个正整数,逆序打印这个整数的每一行
1.第一步首先求n的个位数,⽤n%10的运算,得到的余数就是最低位,如:1234%10得到4
2.第二步使⽤ n=n/10 操作去掉最低位的,找出倒数第⼆位,如:n=1234/10得123
3.此时1234变成了123,循环前两个步骤,在n变成0之前,就能到所有的位数#include <stdio.h> int main() { int n = 0; scanf("%d", &n); while (n) { printf("%d ", n % 10); n /= 10; } return 0; }
2.for循环
1)语法结构
表达式1为初始化部分,用于初始化循环变量的。
表达式2为条件判断部分,用于判断循环时候终止。
表达式3为调整部分,用于循环条件的调整。for (表达式1; 表达式2; 表达式3) { 循环语句; }
⾸先执⾏表达式1,初始化循环变量;接下来就是执⾏表达式2判断部分,表达式2的结果如果==0,则循环结束;表达式2的结果如果!=0则执⾏循环语句,循环语句执⾏完后,再去执⾏表达式3 ,调整循环变量,然后再去 表达式2的地⽅执⾏判断,表达式2的结果是否为0,决定循环是否继续。
整个循环的过程中,表达式1初始化部分只被执⾏1次,剩下的就是表达式2、循环语句、表达式3在循环。
2)例题
例题一
还是上面while的例子,在屏幕上打印1-10的值
#include <stdio.h> int main() { int i = 0; for(i=1;i<=10;i++) { printf("%d ", i); } return 0; }
例题二
求1-n项的和
#include <stdio.h> int main() { int n = 0; int i = 0; int sum=0 scanf("%d", &n); for (i = 1; i < n; i++) { sum += i; } printf("%d", sum); return 0; }
3.do-while循环
1)语法结构
do { 循环体; } while (表达式);
do while循环中先执⾏语句,执⾏完语句后再去执⾏判断表达式,若判断表达式的结果是!=0,则继续循环,执⾏循环语句;若判断表达式的结果==0,则循环结束。所以在 do while 语句中循环体是⾄少执⾏⼀次的。
2)例题
例题一
do while 打印数字1-10
#include <stdio.h> int main() { int i = 1; do { printf("%d ", i); i++; } while (i < =10); return 0; }
4.扩展continue,break
扩展 continue 语句
continue 的作用是跳过本次循环 continue 后面的代码,继续执行下一次循环
例题
do while打印数字1-10
#include<stdio.h> int main() { int i = 1; do { printf("%d\n", i); continue;//跳出此次循环,i一直等于1,死循环 i++; } while (i<=10); return 0; }
同理,for循环和while循环中continue的用法基本一样
扩展 break 语句
break 的作用是永久的终止循环,只要 break 被执行,直接跳出循环,执行之后的语句
例题
for循环打印1-10
#include <stdio.h> int main() { int i = 1; for (i = 1; i <= 10; i++) { if (i == 5) break;//跳出循环,直接结束 printf("%d ", i);//输出1 2 3 4 } return 0; }
同理,while循环和do while循环中break的用法基本一样
以上就是今天的分享,我自己对分支和循环的一些理解,希望写出来对大家有帮助,如果可以的话能给我来个三连嘛