C语言判断与循环
C语言判断与循环
判断语句
C 语言提供了以下类型的判断语句。点击链接查看每个语句的细节。
语句 描述
if 语句 一个 if 语句 由一个布尔表达式后跟一个或多个语句组成。
if...else 语句 一个 if 语句 后可跟一个可选的 else 语句,else 语句在布尔表达式为假时执行。
嵌套 if 语句 可以在一个 if 或 else if 语句内使用另一个 if 或 else if 语句。
switch 语句 一个 switch 语句允许测试一个变量等于多个值时的情况。
嵌套 switch 语句 可以在一个 switch 语句内使用另一个 switch 语句。
if else 语句
if(boolean_expression)
{
/ 如果布尔表达式为真将执行的语句 /
}
else
{
/ 如果布尔表达式为假将执行的语句 /
}
#include <stdio.h>
int main() {
int age;
int english_score;
int IQ;
printf ("Please input your age: \n");
scanf_s("%d", &age);
printf ("Please input your english_score: \n");
scanf_s("%d", &english_score);
printf ("Please input your IQ: \n");
scanf_s("%d", &IQ);
if ((age >= 18) && (english_score >= 90 || IQ >= 120)){
//程序可读性
printf ("成年!允许玩! \n");
}
else {
printf ("不成年 或者你的英语成绩不合格! \n");
//程序可读性
}
return 0;
}上面代码中if 中语句是条件,age要大于等于18,后面英语分数和IQ满足一项就可以执行 "成年! 允许玩",否则执行else 后的语句。
if 可以嵌套使用,但不建议又过多的if
include <stdio.h>
int main(void) {
int age = 21;
if (age < 18){
printf ("你未成年!\n");
}
if (age >= 70){
printf ("老年\n");
return 0;
}
if (age >=50) {
printf ("中年\n");
return 0;
}
if (age >= 20){
printf ("angthing\n");
return 0;
}
return 0;
}else if 可以理解为要不然
include <stdio.h>
int main() {
int age == 20;
if (age == 18){
printf ("满足成年了!\n");
//要不然的话
} else if (age == 30) {
printf ("满足结婚年龄!\n");
} else if (age == 70) {
printf ("满足养老年龄!\n");
} else if (age == 100) {
printf ("高寿\n");
} else {
printf ("快去睡觉!\n");
}
return 0;
}switch语句可以嵌套使用
#include <stdio.h>
int main() {
int day;
printf("请输入一个数字(1-7):");
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;
default:
printf("无效的输入\n");
break;
}
return 0;
}C语言循环基础
首先用的最多是for循环
for ( init; condition; increment )
{
statement(s);
}for 循环是一种在编程中经常使用的迭代结构,用于重复执行一组语句,直到指定的条件不再满足。for 循环的基本语法如下:
for (初始化表达式; 循环条件; 迭代表达式)
{
循环体语句;
}1.初始化表达式 (init):在循环开始之前执行一次。通常用于初始化循环控制变量。这一部分可以包含声明和赋值操作。
2.循环条件 (condition):在每次循环迭代之前检查的条件。如果条件为真(true),循环将继续执行;如果条件为假(false),循环将终止。
3.迭代表达式 (increment):在每次循环迭代之后执行。通常用于更新循环控制变量的值。
4.循环体语句 (statement(s)):在每次循环迭代时执行的一组语句。这是循环的主体,包含了实际的操作。
我会举个简单的例子,利用for循环计算1到5的和
#include <stdio.h>
int main()
{
int sum = 0;
// 使用 for 循环计算 1 到 5 的和
for (int i = 1; i <= 5; i++) {
sum += i;// 循环体语句
}
// 输出结果
printf("Sum: %d\n", sum);
return 0;
}1.首先就是初始化表达式 int i = 1; 在循环开始前初始化循环控制变量 i,i就是1。
2.循环条件 i <= 5 在每次循环迭代前检查 i 是否小于等于 5。
3.迭代表达式 i++ 在每次循环迭代后将 i 的值增加 1。
4.循环体语句 sum += i; 在每次循环迭代时将当前的 i 加到 sum 中。
sum += i就是 sum = sum + i
循环开始时,sum 的初始值为 0,然后在每次循环中,当前的 i 的值都会加到 sum 上,最终得到 1 到 5 的和。
第一次循环:sum = 0 + 1,sum 的值为 1。
第二次循环:sum = 1 + 2,sum 的值为 3。
第三次循环:sum = 3 + 3,sum 的值为 6。
第四次循环:sum = 6 + 4,sum 的值为 10。
第五次循环:sum = 10 + 5,sum 的值为 15。
i++(后缀递增):
先使用当前值,然后再递增。
返回 i 的原始值,然后将 i 增加 1。
int i = 5;
int result = i++;
// result = 5, i = 6
++i(前缀递增):
先递增,然后再使用新值。
返回 i 增加 1 后的值。
在C语言中,for 循环的循环体可以是一个单独的语句,也就是说,你可以在没有大括号的情况下编写 for 循环。如果 for 循环只有一条语句,大括号是可选的 。
在你的代码中,你的 for 循环只有一条语句,因此去掉大括号是合法的。以下是你的代码的修正版:
#include <stdio.h>
int main()
{
/* for 循环执行 */
for (int a = 10; a < 20; a = a + 1) {
printf("a 的值: %d\n", a);
}
return 0;
}第一次直接输出10,第二次执行迭代表达式,a 的值: 11 换行继续输出,最后是19

求1到100中所有偶数的和
#include <stdio.h>
int main() {
// 初始化偶数和为0
int even_sum = 0;
// 使用for循环遍历0到100的偶数
for (int num = 0; num <= 100; num += 2) //num = num + 2
{
even_sum += num; //even_sum = even_sum + num
}
// 打印结果
printf("0到100的偶数和为: %d\n", even_sum);
return 0;
}
在上述的C程序中,初始时 even_sum 被初始化为0,而 num 被设置为0。在第一次循环迭代中,num 的值是0,因此 even_sum 将增加0,即 even_sum 的值仍然是0(even_sum = even_sum + num)。所以,第一次循环迭代后,even_sum 的值仍然是0。第二次循环结果是2.
在第二次循环迭代中,num 的值已经被自增为2。循环条件 num <= 100 仍然满足,因此循环继续执行。在第二次迭代中,even_sum += num; 将 even_sum 加上 num(此时 num 的值为2),并且 num += 2; 将 num 自增为4。所以,第二次循环迭代后,even_sum 的值是2,而 num 的值变为4。
这个过程会一直重复,每次迭代都会将 num 的当前值加到 even_sum 中,然后将 num 增加2。最终,当 num 的值超过100时,循环终止。在循环结束时,even_sum 包含了0到100之间所有偶数的总和。
第一步执行rush = 1;就是初始化表达式,第二步执行循环条件,看rush 是否小于1000 ,第三步执行循环体语句,rush = 1. 第四步执行自加语句rush ++,此时rush 是2。 第五步执行循环条件,rush <= GOLD;即rush <= 1000,第六步执行自增语句,rush变成了3,第七步执行循环体语句,输出 rush = 7;
以下是一个简单的C语言程序,用于生成斐波那契数列的前n个数字:
#include <stdio.h>
void generateFibonacci(int n) {
int first = 0, second = 1, next, i;
printf("斐波那契数列前 %d 个数字:\n", n);
for (i = 0; i < n; i++) {
printf("%d, ", first);
next = first + second;
first = second;
second = next;
}
}
int main() {
int n;
printf("请输入要生成的斐波那契数列的数字个数:");
scanf("%d", &n);
generateFibonacci(n);
return 0;
}for 循环可以嵌套使用
下面用C语言输出九九乘法表
#include <stdio.h>
int main()
{
int row, column;
for (row = 1; row <= 9; row++) {
for (column = 1; column <= 9; column++) {
printf("%d*%d = %2d\t", row, column, row * column);
}
printf("\n");
}
return 0;
}外层循环 (for (row = 1; row <= 9; row++)): 控制行数,从1到9。
内层循环 (for (column = 1; column <= 9; column++)): 控制每行中的列数,同样从1到9 。
在内层循环中,printf语句输出了每一项的乘法表达式,其中%d*%d = %2d\t 是格式控制字符串,它表示输出两个整数相乘的结果,其中 %d 是用来格式化整数的占位符,%2d 表示至少输出两个字符的整数,\t 是制表符(用于在输出中产生水平制表)。
代码里printf("%d*%d = %2d\t", row, column, row* column); 语句用于输出九九乘法表中每一项的表达式。这样的格式化输出有助于让输出结果整齐对齐,提高可读性。例如,如果乘积是个位数,%2d 会在前面补一个空格,确保每一项的输出都占用两个字符的宽度。\t 是制表符(用于在输出中产生水平制表)。
调试:
