C语言学习判断与循环

技术笔记

一、判断语句:if与switch

在C语言中,判断语句是程序决策的关键

(一)if语句

if语句是最基本的判断语句,它可以根据条件的真假执行不同的代码块。例如:


int score = 85;
if (score >= 60) {
    printf("及格啦! n");
} else {
    printf("需要再努力哦! n");
}

这段代码通过判断 score是否大于等于60,来决定输出什么内容。 if语句的灵活性在于它可以嵌套使用,从而实现更复杂的逻辑判断。

(二)switch语句

switch语句是处理多分支选择的强大工具。它可以根据变量的值选择执行不同的代码块。例如:


int choice = 2;
switch (choice) {
    case 1:
        printf("选择了第一个选项 n");
        break;
    case 2:
        printf("选择了第二个选项 n");
        break;
    default:
        printf("没有选择任何选项 n");
}

在这个例子中, switch语句根据 choice的值选择执行对应的 case。如果没有匹配的 case,则执行 default部分。需要注意的是,每个 case后面必须break语句,否则会发生“穿透”现象,即程序会继续执行下一个 case

(三)嵌套switch

switch语句还可以嵌套使用,以处理更复杂的逻辑。例如:


int month = 1;
int day = 20;
switch (month) {
    case 1:
        switch (day) {
            case 1:
                printf("新年快乐! n");
                break;
            default:
                printf("一月的普通一天 n");
                break;
        }
        break;
    default:
        printf("其他月份 n");
}

在这个例子中, switch语句嵌套使用,根据 monthday的值输出不同的内容。这种嵌套方式可以清晰地表达复杂的逻辑关系。

二、循环语句:while、for与do...while

循环语句是程序中重复执行任务的核心工具

(一)while循环:简单的重复执行

while循环是最简单的循环语句,它会在条件为真时重复执行代码块。例如:


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

这段代码会输出1到5的数字。 while循环的特点是,如果条件一开始就不满足,循环体一次也不会执行

(二)for循环:结构化的重复执行

for循环是结构化更强的循环语句,它将循环的初始化、条件判断和更新操作集成在一起。例如:


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

这段代码同样会输出1到5的数字。 for循环的特点是代码更加简洁,逻辑更加清晰。

(三)do...while循环:至少执行一次的循环

do...while循环与 while循环类似,但有一个重要的区别: do...while循环无论条件是否满足,都会至少执行一次循环体。例如:


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

这段代码同样会输出1到5的数字。 do...while循环的特点是它至少会执行一次循环体,即使条件一开始就不满足。

(四)循环嵌套:复杂任务的分解与实现

循环嵌套是处理复杂任务的强大工具。通过将循环嵌套在一起,可以实现多层重复的任务。例如:


for (int i = 1; i <= 3; i++) {
    for (int j = 1; j <= 3; j++) {
        printf("第%d行,第%d列 n", i, j);
    }
}

这段代码会输出一个3x3的矩阵,每一行和每一列的编号。循环嵌套可以用于实现矩阵操作、多层遍历等复杂任务。

三、总结

对C语言的判断语句循环语句有了更深入的理解。 if语句和 switch语句在处理条件判断时各有优势,而 while循环、 for循环和 do...while循环则在处理重复任务时各有特点。循环嵌套更是C语言的强大功能。最后希望这篇博客能帮助到同样在学习C语言的朋友们。如果你有任何疑问或建议,欢迎在评论区留言,我们一起交流进步!

返回列表