选择结构
1. else 只与上面离它最近的一个 if 配对。(除花括号括起来外)
2. C语言中,编译器忽略缩进,所以 if else 配对不看缩进。(与python不同)
if else 基本结构:
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main() { int i = 0; scanf("%d", &i); if (i >= 18) { printf("你已经成年\n"); printf("今年你 %d 岁\n",i); } else { printf("你还未成年\n"); printf("今年你 %d 岁\n", i); } return 0; }
if else 双层嵌套结构:
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main() { int i = 0; scanf("%d", &i); if (i < 18) printf("未成年\n"); else { if (i == 18) printf("刚好成年\n"); else printf("已经成年\n"); } return 0; }
else if 多重选择结构:
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main() { int i = 0; scanf("%d", &i); if(i<=18) printf("未成年\n"); else if(i==18) printf("刚好成年\n"); else if(i>18) printf("已经成年\n"); return 0; }
switch case 多重选择结构:
switch (expression) { case value1: statement case value2: statement default: statement }
define _CRT_SECURE_NO_WARNINGS #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; } return 0; }
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main() { int day = 0; scanf("%d", &day); switch (day) { case 1: case 2: case 3: case 4: case 5: printf("工作日\n"); break; case 6: case 7: printf("休息日\n"); break; default: printf("输入错误\n"); break; } return 0; }}
switch语句中的break和default:
1. 在switch条件语句中,case后面没有break,则会接着往下面依次执行,有可能会多执行其他的case情况,直到遇到break结束,或者遇到return结束。
2. 在switch条件语句中,如果有情况难以用case说明,则使用default统一处理。
操作符
关系操作符
1.( > < >= <= == != )
2. 关系操作符构成关系表达式——正确等于1,错误等于0。
3. 多个关系运算符不宜连⽤。
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <time.h> int main() { int a = 5; printf("%d\n", a == 5);//1 printf("%d\n", a == 1);//0 return 0; }
( 5 < 6 < 7 )//错误,不能将将多个关系操作符连用 ( 5<6 && 6<7 )//正确
条件操作符
表达式1 ? 表达式2 : 表达式3 真 算 不算 假 不算 算
x = y < 0 ? -y: y; //可以写成: if (y < 0) x = -y; else x = y;
逻辑操作符
! 取补集 (优先运算) && 取交集 || 取并级
1. 可能出现短路情况。如果前一步已经能够判断真假,就不进行后面的步骤 。
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main() { int i = 0 , j = 5 , k = 8; int a = i++ && j-- && k++; //第一步i==0,就已经短路。 printf("%d", j); return 0; }
操作符综合范例
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main() //闰年:能被4整除,但不能被100整除; // 能被400整除。 { int i; scanf("%d", &i); if ((i % 4 == 0) && (i % 100 != 0)) { printf("是闰年"); } else if (i % 400 == 0) { printf("是闰年"); } else printf("是平年"); return 0; }
循环结构
while循环
#include <stdio.h> int main() { int n = 0;//初始化 scanf("%d", &n); while(n)//判断 { printf("%d ", n%10);//操作 n /= 10;//调整 } return 0; }
for循环
for(表达式1; 表达式2; 表达式3) 表达式1 ⽤于循环变量的初始化 表达式2 ⽤于循环结束条件的判断 表达式3 ⽤于循环变量的调整
#include <stdio.h> int main() { int i = 0; for(i=1; i<=10; i++)//初始化,判断,调整 { printf("%d ", i);//操作 } return 0; }
do-while循环
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main() { int n = 0, m = 0;//初始化 scanf("%d", &n); do { m++;//操作 n /= 10;//调整 } while (n);//判断 printf("%d", m); return 0; }
循环语句中的break和continue
1. 循环语句中的 break 也是⽤于终⽌循环的,不管循环还需要循环多少次,只要执⾏到了 break ,循环就彻底终⽌。
2. 循环语句中 continue 的作⽤是跳过本次循环中 continue 后的代码,直接去到循环的调整判断部分。
goto语句
1. goto 语句可以实现在同⼀个函数内,跳转到设置好的标号处。
2. 少用goto语句,容易出错。
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> int main() { printf("hehe"); goto next; printf("haha"); next: printf("wuwu"); return 0; }
综合范例
找出100~200之间的素数,并打印在屏幕上。(素数⼜称质数,只能被1和本⾝整除的数字)
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main() { int i = 0; for (i = 100; i < 200; i++) { int j = 0; int num = 0; for (j = 2; j < i - 1; j++) { if (i % j == 0) { num = 0; break; } else { num = 1; } } if (num == 1) { printf("%d\n", i); } } return 0; }
致谢
感谢您花时间阅读这篇文章!如果您对本文有任何疑问、建议或是想要分享您的看法,请不要犹豫,在评论区留下您的宝贵意见。每一次互动都是我前进的动力,您的支持是我最大的鼓励。期待与您的交流,让我们共同成长,探索技术世界的无限可能!