1.分支语句
- if
- switch
2.循环语句
-
while
-
for
-
do while
1.1 if语句
1.1.1单分支
if(表达式)
语句;
#include<stdio.h>
int main()
{
int year = 19;
if (year > 18)
{
printf("成年人");
}
return 0;
}
//结果:成年人
1.1.2双分支
if(表达式)
语句1;
else
语句2;
#include<stdio.h>
int main()
{
int year = 19;
if (year < 18)
{
printf("未成年人");
}
else
{
printf("成年人");
}
return 0;
}
//结果:成年人
1.1.3多分支
if(表达式a)
语句1;
else if(表达式b)
语句2;
else
语句3;
#include<stdio.h>
int main()
{
int year = 19;
if (year < 18)
{
printf("未成年人");
}
else if(18<year<28)
{
printf("青少年");
}
else
{
printf("中年人");
}
return 0;
}
//结果:青少年
else
1.不存在{if()语句;},else与最近的一个if匹配
2.存在{if()语句;},else与程序内含if语句的第一个语句匹配
#include <stdio.h>
int main()
{
int a = 0;
scanf_s("%d", &a);
if (a > 5)
if (a < 10)
printf("111");
else
printf("222");
return 0;
}
//如果输入5,第一个if成立-->第二个if成立-->输出111
//如果输入50,第一个if成立-->第二个if不成立-->执行else(与第二个if匹配)-->输出222
#include <stdio.h>
int main()
{
int a = 0;
scanf_s("%d", &a);
if (a > 5)
{
if (a < 10)
printf("111");
}
else
printf("222");
return 0;
}
//如果输入6,第一个if成立-->第二个if成立-->输出111
//如果输入20,第一个if成立-->第二个if不成立-->无输出内容(第二个if内部无else匹配)
//如果输出1,第一个if不成立-->执行else(与第一个if匹配)-->输出222
1.2 switch语句
switch(表达式)
{
case 1:
语句1;
case 2:
语句2;
case 3:
语句3;
default:
语句4;
}
表达式的结果需要是整形1.2.3...;
#include<stdio.h>
int main()
{
int num = 0;
scanf_s("%d", &num);
switch (num)
{
case 1:
printf("1");
break;
case 2:
printf("2");
break;
default:
printf("其他");
break;
}
return 0;
}
//输入1-->输出1
//输入2-->输出2
//输入3-->输出其他
break
每条语句后需要break;跳出switch语句,否则会继续把程序后面的case(无需再次判断)的内容全部执行一遍;
#include<stdio.h>
int main()
{
int num = 0;
scanf_s("%d", &num);
switch (num)
{
case 1:
printf("1");
case 2:
printf("2");
default:
printf("其他");
}
return 0;
}
//输入1-->打印12其他
2.1while循环
while(表达式)
{
语句;
}
#include<stdio.h>
int main()
{
int num=0;
scanf_s("%d", &num);
while (num<=10)
{
printf("111");
break;
}
return 0;
}
//输入1-->输出111
//如果缺失break;将会一直打印111
2.2for循环
for((表达式1);(表达式2);(表达式3))
{
语句;
}
//表达式1填变量初始值
//表达式2填判断语句
//表达式3填执行后表达式的变化
//注意:表达式1,2,3均不写,则循环一直执行
#include<stdio.h>
int main()
{
int i=0;
for (i = 0; i < 5; i++)
{
printf("%d\n", i);
}
return 0;
}
//结果:01234
continue
continue 用来跳过本次循环剩下尚未被执行的语句,立刻进行下一次循环条件的判断
#include<stdio.h>
int main()
{
int i=0;
for (i = 0; i < 5; i++)
{
if(3==i)
{
continue;
}
printf("%d\n", i);
}
return 0;
}
//结果:0124
:red_circle:break一般用于switch语句和循环语句,用于跳出循环,执行循环以外的第一条语句
:red_circle:contine一般用于循环语句,用于跳出本次循环剩下的内容,继续执行下一次循环的判断条件
2.3do while
do
{
语句;
}
while(表达式);
//与while不同的是,do while是先执行一次循环语句,然后再来判断是否继续执行下一次循环
int main()
{
int i = 0;
do
{
printf("%d", i);
i++;
} while (i<5);
return 0;
}
//结果:01234