欢迎来到我的博客!今天我们将一起探讨C语言中非常重要的分支循环语句。这些语句在我们日常的编程工作中起着至关重要的作用,它们可以帮助我们更好地组织代码并实现复杂的逻辑。
一、If语句和关系操作符
首先,我们来看看If语句和关系操作符。在C语言中,我们使用if语句来根据特定条件执行代码块。关系操作符(<, >, <=, >=)用于比较两个值的大小。
int a = 10;
int b = 20;
if (a < b) {
printf("a < b \n");
} else {
printf("a > b \n");
}
这段代码会检查a是否小于b,如果是,就打印出"a < b ",否则打印出"a > b "。
二、条件操作符和逻辑操作符
接下来,我们要介绍的是条件操作符(?:)和逻辑操作符(&&, ||)。条件操作符是一个简便的三元操作符,它可以根据一个条件来决定两个值中的哪一个被赋值给一个变量。逻辑操作符用于组合布尔表达式。
int c = (a > b) ? a : b; // 如果a大于b,c等于a,否则c等于b
if (a && b) { // 如果a和b都为真,就执行下面的代码块
printf("a,b都为true.\n");
} else {
printf("a,b中至少有一个false.\n");
}
三、Switch语句
接下来,我们来看看Switch语句。Switch语句允许我们根据一个变量的值来执行不同的代码块。每个可能的值都被称为一个case,而默认的case(如果没有匹配的值)被称为default。
int day = 2;
switch (day) {
case 1:
printf("Monday\n");
break;
case 2:
printf("Tuesday\n");
break;
case 3:
printf("Wednesday\n");
break;
// ... other days ...
default:
printf("Invalid day.\n"); // 如果day的值没有匹配任何case,就执行default的代码块
}
四、while循环
while循环是一种先判断条件,再执行循环体的循环结构。当条件为真时,循环体会反复执行;当条件为假时,循环体将不再执行。
例如,以下是一个使用while循环计算1到10之和的示例代码:
int sum = 0;
int i = 1;
while (i <= 10) {
sum += i;
i++;
}
printf("1-100数字总和: %d", sum);
在上面的代码中,当i小于等于10时,循环体会反复执行,累加i的值并将i递增。当i大于10时,循环体将不再执行,程序输出计算结果。
五、for循环
for循环是一种先执行一次循环初始化,再根据指定的条件执行循环体,最后进行循环更新的循环结构。
例如,以下是一个使用for循环打印数字1到10的示例代码:
for (int i = 1; i <= 10; i++) {
printf("%d ", i);
}
在上面的代码中,首先将i初始化为1,然后当i小于等于10时,执行循环体打印i的值并将i递增。当i大于10时,循环体将不再执行。
六、do-while循环
do-while循环是一种先执行一次循环体,再判断条件的循环结构。与while循环不同的是,do-while循环至少会执行一次循环体。
例如,以下是一个使用do-while循环从键盘输入数字并判断是否为正数的示例代码:
int num;
printf("请输入一个数字r: ");
scanf("%d", &num);
do {
if (num < 0) {
printf("输入无效,请输入正数: ");
scanf("%d", &num);
} else {
printf("您输入的: %d\n", num);
break;
}
} while (1);
在上面的代码中,首先从键盘输入一个数字并存入num变量中。然后使用do-while循环判断num是否为正数。如果不是正数,则提示用户重新输入并等待用户输入新的数字。如果是正数,则输出用户输入的数字并跳出循环。由于do-while循环至少会执行一次循环体,因此需要在循环体内使用break语句才能跳出循环。
七、Break和Continue语句
Break语句
在C语言中,Break语句用于跳出当前循环或switch语句。当程序执行到Break语句时,它将立即退出当前循环或switch语句,并继续执行下一条语句。
例如,以下是一个使用Break语句跳出循环的示例代码:
#include <stdio.h>
int main() {
int i;
for (i = 1; i <= 10; i++) {
if (i == 5) {
break;
}
printf("%d ", i);
}
printf("循环结束 i = %d\n", i);
return 0;
}
在上面的代码中,当i等于5时,程序执行到Break语句,跳出循环并输出"Loop exited at i = 5"。由于在Break语句之前已经打印了1到4的数字,因此循环只执行了5次。
Continue语句
Continue语句用于跳过当前循环的剩余部分,直接开始下一次循环。当程序执行到Continue语句时,它将立即退出当前循环的剩余部分,并继续执行下一次循环。
例如,以下是一个使用Continue语句的示例代码:
#include <stdio.h>
int main() {
int i;
for (i = 1; i <= 10; i++) {
if (i % 2 == 0) {
continue;
}
printf("%d ", i);
}
printf("循环结束 i = %d\n", i);
return 0;
}
在上面的代码中,当i为偶数时,程序执行到Continue语句,跳过当前循环的剩余部分并开始下一次循环。因此,只有1、3、5、7、9这些奇数被打印出来。
八、循环嵌套
循环嵌套是指在循环内部再有一个或多个循环的情况。在C语言中,我们可以使用嵌套的for循环或while循环来实现循环嵌套。以下是一个使用嵌套for循环的示例代码:
#include <stdio.h>
int main() {
int i, j;
for (i = 1; i <= 3; i++) {
for (j = 1; j <= 3; j++) {
printf("%d%d ", i, j);
}
printf("\n");
}
return 0;
}