一、分支结构
1.if、if else、else if
1.1 if 单分支
if 的语法形式:
表达式为真时,执行if里面的语句,为假则不执行。
例子:
int main()
{
int a = 1;
int b = 100;
if(a > b)
{
printf("我是猪");
}
}
由于这里的a > b是, 1 > 100,为假,则不执行if里的语句
运行结果如下:
int main()
{
int a = 1;
int b = 100;
if(a < b)
{
printf("我是猪");
}
}
由于a < b.为1 < 100.为真,则执行if里的语句,打印“我是猪”。
运行结果:
1.2 if else
上面的只有 if 单个是没办法进行更多的分支的,可以配上else
语法形式是:
当 if中的表达式为假时,则执行else中的语句
输入两个值,若a > b.则打印“我是猪”。反之打印“你是猪”。
int main()
{
int a = 0;
int b = 0;
scanf("%d %d", &a, &b);
if (a > b)
{
printf("我是猪");
}
else
{
printf("你是猪");
}
return 0;
}
运行结果如下,分别是a > b的结果(图一)和a < b的结果(图二)
(图一)
(图二)
1.3 else if多分枝
if else仅仅只有两个支,若想要更多的分只就可以在 if 与else之间插入else if 来用更多的分支
语法形式:
这里中间只用了两个else if ,如果需要可以用更多。
使用原理,如果表达式为真,则执行if里的语句。为假则去下一条判断。
例子:输入两个数,若a > b. 打印“你是猪”。若a < b,打印“我是猪”。若a = b.打印“我们都是猪”
int main()
{
int a = 0;
int b = 0;
scanf("%d %d", &a, &b);
if (a > b)
{
printf("你是猪");
}
else if (a < b)
{
printf("我是猪");
}
else
{
printf("我们都是猪");
}
return 0;
}
运行结果如下,分别是a > b(图一)、a < b(图二)、a =b(图三)
(图一)
(图二)
(图三)
2.switch case
语法形式:
先从表达式中得到一个结果,用这个结果和case中的常量表达式进行对比,若相同则执行语句,不相同则继续对比。default是如果没有一个常量的常量表达式与switch(表达式)中的表达式的结果相同的话,执行default语句
例子:输入1-7,分别打印对应的星期几,若输入1-7以外的数字则打印“输入错误”
int main()
{
int day = 0;
scanf("%d", &day);
switch (day)
{
case 1:
printf("星期一");
break;
case 2:
printf("星期二");
break;
case 3:
printf("星期三");
break;
case 4:
printf("星期四");
break;
case 5:
printf("星期五");
break;
case 6:
printf("星期六");
break;
case 7:
printf("星期天");
break;
default:
printf("输入错误");
}
return 0;
}
运行结果如下,分别是3(图一) 4(图二) 100(图三)的结果
(图一)
(图二)
(图三)
二、循环结构
1、for循环
for循环的语法形式:
for(表达式1; 表达式2 ;表达式3)
{
循环体;
}
表达式1是给循环变量设置初始值。
表达式2是判断循环条件
表达式3起着调整循环变量的作用。
例子:
int main()
{
int i = 0;
for (i = 1; i < 5; i++)
{
printf("我是猪\n");
}
return 0;
}
首先我们给循环变量设置初始值i = 1;
注:这里的设置初始值在for循环里只会执行一次
然后此时初始值i = 1;会与循环条件 i < 5;开始判断。
此时的 i 的值为1,而条件为 i < 5;满足条件。开始第一次循环
此时开时执行循环体的内容printf(“我是猪”);开始打印我是猪。
打印完我是猪这条语句后,回到表达式3,执行 i++;(i = i +1的意思)进行对循环变量的调整。执行完 i++;后。开始第二次循环,执行i++;此时的i为2,重新与循环条件i < 5;进行判断满足条件,开始第二次循环。再次执行循环体里的语句,打印“我是猪”
第三次同理。当第四次循环开始时i =4.与条件判断,满足条件进行第四次循环。第五次循环开始后,执行i++;此时 i = 5,与循环条件i < 5 进行判断,不满足循环条件,此时退出循环。
所以总共打印4次“我是猪”。
运行结果如下:
2.while循环
while 循环的语法形式:
while (表达式)
{
循环体;
}
while循环能不能执行是看()里的内容是真还是假。为假(0为假),则不进行循环。若为真(非0为真),则执行循环。
这里以打印4次“我是猪”为例子
int main()
{
while (0)
{
printf("我是猪");
}
return 0;
}
首先判断条件是否为真,此时括号里的值为0,为假,即不会进行循环 。
运行结果如下:
int main()
{
while (1)
{
printf("我是猪");
}
return 0;
}
而这里括号的内容为非0;为真,则开始循环
运行结果如下:
用while循环打印3次“我是猪”
int main()
{
int i = 0;
while (i < 3)
{
printf("我是猪\n");
i++;
}
}
首先判断括号里是否为真,此时i=0,判断条件为i < 3。满足条件,开始第一次循环,打印“我是猪”,然后执行i++;第一次循环后,i= 1。继续判断,满足条件。第二次循环结束后i= 2。满足条件,开始第三次循环。执行完后,此时i = 3.再次与循环条件i < 3进行判断。不满足条件,循环结束。
运行结果如下:
3、do while循环
do while循环的语法形式:
do
{
循环体;
}
while (表达式);
do while循环无论怎么样会先进行一次循环体,随后在根据表达式判断是否为真,再决定是否循环
以打印“我是猪”为例
int main()
{
do
{
printf("我是猪\n");
}
while(0);
return 0;
}
do while循环首先执行循环体里的内容,打印“我是猪”。然后在判断循环条件是否为真。这里的表达式时0,为假,则不进行循环。
运行结果如下:
int main()
{
do
{
printf("我是猪");
}
while(1);
return 0;
}
现打印一次“我是猪”。然后在判断循环条件是否为真。这里的表达式时1,为真,则进行循环。一直循环打印“我是猪”
运行结果如下:
用do while循环打印3次“我是猪”。
int main()
{
int i = 0;
do
{
printf("我是猪\n");
i++;
}
while (i < 3)
}
运行结果如下: