目录
🥑🍓Let's go🍓🥑
一:分支语句
(1):if语句
1️⃣语法结构:
🥑单分支:
(1):if(表达式)
语句;
(2):if(表达式)
语句1;
else
语句2;
🌈🌈例如:
(1):
#include <stdio.h>
int main()
{
int age = 0;
scanf("%d", &age);
if (age < 18)
{
printf("未成年");
}
return 0;
}
(2):
#include <stdio.h>
int main()
{
int age = 0;
scanf("%d", &age);
if (age < 18)
printf("未成年");
else
printf("已成年");
return 0;
}
🥑多分支:
if(表达式)
语句1;
else if(表达式)
语句2;
else
语句3;
🌈🌈例如:
#include <stdio.h>
int main()
{
int age = 0;
scanf("%d", &age);
if (age < 18)
{
printf("未成年");
}
else if (age >= 18 && age <= 45)
//注意此处不可写成(18<=age<=45),分析得如果输入的值为47,
//首先判断age=47>18为真,则age>=18的结果为1,而1又<45为真,
//则可以打印出“青年” ,但正确应该是打印出的结果为 “中年”
{
printf("青年");
}
else if (age >= 46 && age <= 69)
{
printf("中年");
}
else
{
printf("老年");
}
return 0;
}
2️⃣ 悬空else语句
🌈🌈例如:
#include <stdio.h>
int main()
{
int a = 0;
int b = 2;
if (a == 1)
if (b == 2)
printf("hehe\n");
else
printf("haha\n");
return 0;
//打印结果为空,原因是else与离得最近的if进行匹配,所以此时的else与if(b==2)相匹配
//所以if(a==1)条件不满足则不会进入下面的语句,没有结果。
}
//改正后得到 :
#include <stdio.h>
int main()
{
int a = 0;
int b = 2;
if (a == 1)
{
if (b == 2)
{
printf("hehe\n");
}
}
else
{
printf("haha\n");
}
return 0;
}
//所以编写if语句和else语句时要添加“{}”符号;
❗️❗️❗️[注]:else是和它离的最近的if匹配的
3️⃣if书写形式的对比
(1):当遇到==时,最好将常量放在==的左边
(2):初学者在使用if语句碰到单条语句时,也需要使用“{}”符号
🌈🌈例如:
#include <stdio.h>
int main()
{
int num = 1;
if (num == 5)
{
printf("haha\n");
}
return 0;
}
//代码2:
#include <stdio.h>
int main()
{
int num = 1;
if (5 == num)
{
printf("haha\n");
}
return 0;
}
//代码2比代码1更好,原因为当写判断条件有==时,
//代码1若缺少一个=时不会发生报错,而代码2缺少一个=时,程序会发生报错。
🌈🌈例如:
//代码3:
if(判断条件)
{
return x
}
return y;
//代码4:
if(条件)
{
return x;
}
else
{
return y;
}
//代码3与代码4相同
(2)switch语句
1️⃣语法结构:
switch(整型表达式)
{
case 整型常量表达式:
语句;
case 2:
case 3:
...
}
☀️☀️例如:
🍒未使用switch语句:
#include <stdio.h>
int main()
{
int day = 0;
scanf("%d", &day);
if (1 == day)
{
printf("星期一\n");
}
if (2 == day)
{
printf("星期二\n");
}
if (3 == day)
{
printf("星期三\n");
}
if (4 == day)
{
printf("星期四\n");
}
if (5== day)
{
printf("星期五\n");
}
if (6 == day)
{
printf("星期六\n");
}
if (7 == day)
{
printf("星期天\n");
}
return 0;
}
🍒使用switch语句:
#include <stdio.h>
int main()
{
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:
printf("星期六\n");
break;
case 7:
printf("星期天\n");
break;
defaault:
printf("选择错误");
}
return 0;
}
2️⃣ switch语句练习
☀️☀️例如:
#include <stdio.h>
int main()
{
int day;
scanf("%d", &day);
switch (day)
{
case 1:
case 2:
case 3:
case 4:
case 5:
printf("工作日\n");
break;
case 6:
case 7:
printf("休息日\n");
break;
}
return 0;
}
3️⃣switch语句的嵌套使用
☀️☀️例如:
#include <stdio.h>
int main()
{
int n = 1;
int m = 2;
switch (n)
{
case 1:
m++;
case 2:
n++;
case 3:
switch(n)
{
case 1:
n++;
case 2:
m++;
n++;
break;
}
case 4:
m++;
break;
default:
break;
}
printf("m = %d, n = %d\n", m, n);
return 0;
}
//最终结果为m=5,n=3;
㊙️㊙️分析得:
二.循环语句
(1)while语句
1️⃣语法结构
while(表达式)
循环语句;
☃️☃️例如:
//练习在屏幕上打印1-10的数字
#include <stdio.h>
int main()
{
int i = 1;
while (i <= 10)
{
printf("%d ", i);
i++;
}
return 0;
}
2️⃣while语句中的break
☃️☃️例如:
#include <stdio.h>
int main()
{
int i = 1;
while (i <= 10)
{
if (i == 5)
break;
printf("%d ", i);
i++;
}
return 0;
//结果为1 2 3 4
}
//【总结】其实在循环中只要遇到break,就停止后期的所有的循环,直接终止循环。
// while中的break是用于永久终止循环的。
3️⃣ while语句中的continue
☃️☃️例如:
#include <stdio.h>
int main()
{
int i = 1;
while (i <= 10)
{
if (i == 5)
continue;
printf("%d ", i);
i++;
}
return 0;
//结果为:1 2 3 4死循环
}
//【总结】continue是用于终止本次循环的,
//也就是本次循环中continue后边的代码不会再执行,
//而是直接跳转到while语句的判断部分。进行下一次循环的入口判断
(2)for循环语句
1️⃣语法结构
for(表达式1;表达式2;表达式3)
循环语句 ;
【注】:
表达式1:初始化部分,用于初始化循环变量的
表达式2:条件判断部分,用于判断循环什么时候终止
表达式3:调整部分,用于循环条件的调整
🌞 🌞例如:
//利用for循环打印1-10
#include <stdio.h>
int main()
{
int i = 0;
for (i = 1; i <= 10; i++)
{
printf("%d ", i);
}
return 0;
}
2️⃣for语句中的break
#include <stdio.h>
int main()
{
int i = 0;
for (i = 1; i <= 10; i++)
{
if (i == 5)
break;
printf("%d ",i);
}
return 0;
//打印的结果为1 2 3 4
}
3️⃣ for语句中的continue
🌞 🌞例如:
#include <stdio.h>
int main()
{
int i = 0;
for (i = 1; i <= 10; i++)
{
if (i == 5)
continue;
printf("%d ", i);
}
return 0;
//打印的结果为:1 2 3 4 6 7 8 9 10
}
4️⃣ for语句的循环控制变量
(1):
#include <stdio.h>
int main()
{
int i = 0;
for (i = 0; i < 10; i++)//for循环的条件最好写成前闭后开
{
printf("%d ", i);
}
return 0;
}
(2):
#include <stdio.h>
int main()
{
int i = 0;
for (i = 1; i <= 10; i++)//有时也需要前闭后闭
{
printf("%d ", i);
}
return 0;
}
5️⃣for循环的变种
⛅️⛅️变种1:
#include <stdio.h>
int main()
{
for (;;)//for循环的三个条件可以选择省略
{
printf("hehe\n");
}
return 0;
}
⛅️⛅️变种2:
#include <stdio.h>
int main()
{
int i = 0;
int j = 0;
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3; j++)
{
printf("hehe\n");
}
}
return 0;
//打印的结果为9个hehe,原因是3*3=9;
}
⛅️⛅️变种3:
#include <stdio.h>
int main()
{
int i = 0;
int j = 0;
for (i = 0; i < 3; i++)
{
for (; j < 3; j++)
{
printf("hehe\n");
}
}
return 0;
//打印的结果为3个hehe,原因是当i=0,j=0时,打印3个hehe,
//当i=1时j还是为3,不进行打印hehe。
}
⛅️⛅️变种4:
#include <stdio.h>
int main()
{
int x, y;
for (x = 0, y = 0; x < 3 && y < 4; x++, y++)
//for循环再条件的使用时可以定义多个变量
{
printf("hehe\n");
}
return 0;
}
⛅️⛅️变种5:
#include <stdio.h>
int main()
{
int i = 0;
int k = 0;
for (i = 0, k = 0; k = 0; i++, k++)
{
k++;
}
return 0;
//最后的及如果为空,原因为在判断条件将k=0,则条件为假,
//不能进行程序的运行
}
(3)do...while循环语句
1️⃣语法结构
do
循环语句;
while(表达式);
🌈🌈例如:
//利用do...while循环打印1-10
#include <stdio.h>
int main()
{
int i = 1;
do//循环体至少执行一次
{
printf("%d ", i);
i++;
} while (i <= 10);
return 0;
}
2️⃣do...while语句中的break
🌈🌈例如:
#include <stdio.h>
int main()
{
int i = 1;
do
{
if (i == 5)
break;
printf("%d ", i);
i++;
} while (i <= 10);
return 0;
//打印的结果为:1 2 3 4
}
3️⃣ for语句中的continue
🌈🌈例如:
#include <stdio.h>
int main()
{
int i = 1;
do
{
if (i == 5)
continue;
printf("%d ", i);
i++;
} while (i <= 10);
return 0;
//打印的结果为1 2 3 4死循环
}