文章目录
C语言笔记3:分支与循环
C语言是结构化的程序设计语言
顺序结构:语句
选择结构(分支结构):if、switch
循环结构:while、do while、for
一、if语句
if
c#include <stdio.h> int main() { int input = 0; scanf("%d",&input); if(input % 2 == 1) printf("输入数据是奇数\n"); return 0; }
流程图:

之前说C语言是结构化的语言,现在看所谓顺序结构 在图中就体现为一个矩形 ,分支结构 则为一个菱形。
else
c#include <stdio.h> int main() { int input = 0; scanf("%d",&input); if(input % 2 == 1) printf("输入数据是奇数\n"); else printf("输入数据是偶数\n"); return 0; }
悬空else问题
如果有多个if 和 else ,else首先和最近的if匹配
二、短路
C语言的逻辑操作符是从左向右运算的,如果左边的表达式结果已经决定了整个逻辑表达式的判断结果,就不会继续运算了
三、switch语句
cswitch (expression) { case value1: statement case value2: statement default: statement }不加break就会一直往下执行,default表示无匹配结果的时候做什么
四、while语句
c#include <stdio.h> int main() { while(1) printf("hahaha\n"); return 0; }流程图:

五、for循环
cfor(表达式1;表达式2;表达式3) { 语句; }流程图:

在C89标准之前,for表达式1定义的变量的作用域生命周期和它所在的代码块一致,C99以及以后的标准,在表达式1定义的变量不能在循环外部使用。所以对于我们而言,最佳实践是,不要在循环外使用循环定义的变量。
六、do while
cdo { printf("haha\n"); }while(1);do {} while();是一条语句
七、goto
goto 语句用于跳出多层循环
cfor(...) { for(...) { for(...) { //... if(error) goto error; } } } error: //... ```c for(...) { for(...) { for(...) { //... if(error) goto error; } } } error: //...