C 语言:分支和循环(上)

C 语言:分支和循环(上)_第1张图片

 各位看官好,我是maomi_9526

 种一棵树最好是十年前,其次是现在!

 今天来学习C语言的相关知识。

 如果觉得这篇文章有帮助,欢迎您一键三连,分享给更多人哦

目录

1. if 语句

1.1 基本 if 语句

1.2 if-else 语句

1.3 if 代码块(多个语句)

1.4 else if 结构

1.5 嵌套 if

1.6 悬空 else

2. switch 语句

2.1 语法

3. 循环语句

3.1 while 循环

3.2 for 循环

3.3 do-while 循环

4. break 和 continue

4.1 break

4.2 continue

总结:


C 语言是一种结构化编程语言,主要包括顺序结构、选择结构和循环结构。其中,选择结构用于分支判断,循环结构用于重复执行代码。


1. if 语句

if 语句用于根据条件的真假执行不同的代码块。C 语言中,0 代表假,非 0 代表真。

1.1 基本 if 语句

语法

if (表达式)
    语句;

特点

  • 表达式的值为(非 0),执行语句
  • 表达式的值为(0),跳过语句

 示例:判断奇偶数

int num;
scanf("%d", &num);
if(num % 2 == 1)
    printf("%d 是奇数\n", num);

分析

  • num % 2 == 1:判断 num 是否是奇数,如果是,则执行 printf 语句。
  • if 语句只有一条语句时,可以省略 {}

1.2 if-else 语句

当需要执行两种不同的情况时,使用 if-else 结构。

语法

if (表达式)
    语句1;
else
    语句2;

示例:判断年龄是否成年

int age;
scanf("%d", &age);
if(age >= 18)
    printf("成年\n");
else
    printf("未成年\n");

分析

  • 如果 age >= 18,则输出 "成年"
  • 否则,输出 "未成年"

1.3 if 代码块(多个语句)

如果 if 语句或 else 语句包含多条语句,必须用 {} 括起来,否则 if 只会作用于 紧随其后的一条语句

示例:

if (age >= 18) {  
    printf("成年了\n");  
    printf("可以交朋友了\n");  
}

 错误示例:(缺少 {}

if (age >= 18) 
    printf("成年了\n");
    printf("可以交朋友了\n");  // 无论 age 是否 >=18,这句都会执行!

1.4 else if 结构

当有多个条件需要判断时,可以使用 else if 结构。

语法

if (条件1)
    语句1;
else if (条件2)
    语句2;
else
    语句3;

示例:判断成绩等级

int score;
scanf("%d", &score);
if (score >= 90)
    printf("优秀\n");
else if (score >= 75)
    printf("良好\n");
else if (score >= 60)
    printf("及格\n");
else
    printf("不及格\n");

特点

  • 只有第一个满足的条件会执行,其余部分被跳过。

1.5 嵌套 if

if 语句可以嵌套使用,实现更复杂的逻辑。

示例:判断正负奇偶数

int num;
scanf("%d", &num);
if (num > 0) {
    if (num % 2 == 0)
        printf("正偶数\n");
    else
        printf("正奇数\n");
} else {
    printf("非正数\n");
}

特点

  • if 语句可以嵌套,但过多嵌套会降低可读性。

1.6 悬空 else

规则else 总是和最近的 if 语句匹配,避免歧义要用 {}

错误示例

if (a == 1)
    if (b == 2)
        printf("hehe\n");
else
    printf("haha\n"); // 这里的 else 其实是属于 `if (b == 2)`

正确示例

if (a == 1) {
    if (b == 2)
        printf("hehe\n");
} else {
    printf("haha\n");
}

2. switch 语句

2.1 语法

switch 用于多分支选择,适用于值比较固定的情况。

语法:

switch (表达式) {
    case 值1: 语句; break;
    case 值2: 语句; break;
    default: 语句;
}

示例:根据数字判断星期

int day;
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:
    case 7: printf("休息日\n"); break;
    default: printf("输入错误\n");
}

注意点:

  1. break 作用:如果 case 语句没有 break,则会执行后续 case,直到遇到 breakswitch 结束。
  2. default 可选:用于处理无匹配情况

3. 循环语句

3.1 while 循环

语法

while (条件) {
    语句;
}

示例:打印 1~10

int i = 1;
while (i <= 10) {
    printf("%d ", i);
    i++;
}

3.2 for 循环

语法

for (初始化; 判断; 调整) {
    语句;
}

示例:打印 1~10

for (int i = 1; i <= 10; i++) {
    printf("%d ", i);
}

特点

  • for 适用于循环次数固定的情况。

3.3 do-while 循环

语法:

do {
    语句;
} while (条件);

示例:计算数字位数

int n, cnt = 0;
scanf("%d", &n);
do {
    cnt++;
    n /= 10;
} while (n);
printf("%d\n", cnt);

特点

  • do-while 至少执行一次,然后才判断是否继续循环。

4. break 和 continue

4.1 break

作用

  • 终止当前循环,直接跳出循环结构。

示例

for (int i = 1; i <= 10; i++) {
    if (i == 5) break;
    printf("%d ", i);
}

4.2 continue

 作用

  • 跳过本次循环剩余代码,进入下一轮循环

 示例

for (int i = 1; i <= 10; i++) {
    if (i == 5) continue;
    printf("%d ", i);
}

总结:

  • if-else 用于条件判断
  • switch 适用于多分支固定值选择
  • for 适用于固定次数循环
  • while 适用于条件循环
  • break 退出循环,continue 跳过当前循环

你可能感兴趣的:(C语言,c语言,开发语言)