C语言中
有表达式语句 函数调用语句 控制语句 复合语句 空语句
分支语句和循环语句是控制语句
控制语句用于控制程序的执行流程,以实现程序的各种结构方式,它们由特定的语句定义符组成
(条件判断语句)分支语句:if 和 switch
(循环执行语句)循环语句:while 、for 、 do while、
(转向语句)特殊语句:go to 、break 、continue 、 return
分支语句
一、if
1.如要使用if条件符合事实就ok 例如
#include<stdio.h>
int main()
{
int age = 10;
if (age >= 18)
{
printf("成年");
}
return 0;
}
2.if与else配合 else就是除了if的条件不符合就触发另一个情况
#include<stdio.h>
int main()
{
int age = 10;
if (age >= 18)
{
printf("成年");
}
else
{
printf("不成年");
}
return 0;
}
3.if与else if配合 就是如果不符合if后条件的另一个条件执行(esle if就可以用来多分支实现)
int main()
{
int age = 10;
if (age >= 18)
{
printf("成年");
}
else if(age < 0)
{
printf("输入错误");
}
else
{
printf("未成年");
}
return 0;
}
二、switch
1.switch一般和case、default、break配合使用
switch提供条件 case集合条件 default是除了case以外其它条件 break是跳出选择语句
首先解释为什么要跳出选择:switch选择中,case相当于是这个函数的入口,进去后会不断的向下执行函数直到全部入口以下的一起运行,但是break会打断运行,一般情况下case和break是绑定运行的。
正常使用例子
#include <stdio.h>
int main()
{
int day = 0;
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;
}
return 0;
}
2.配合defual使用
#include <stdio.h>
int main()
{
int day = 0;
switch (day)
{
case 1:
printf("星期一\n");
break;
default:printf("非星期一\n");
break;
}
return 0;
}
循环语句
一、while循环
1.while(真/假)或者 (判断语句)
如果是真while就循环 假while就停止循环 假是0 真是非假的数
例如 循环打印1-10 (用的判断语句)
#include <stdio.h>
int main()
{
int i = 1;
while(i<=10)
{
printf("%d ", i);
i = i+1;
}
return 0;
}
2.while配合break和continue
如果是break就是打断循环并且跳出循环continue就是当执行到contine时从它所在的地方打断循环直接跳到下一次循环语句。
例如 i等5就打断
#include <stdio.h>
int main()
{
int i = 1;
while (i <= 10)
{
if (i == 5)
break;
printf("%d ", i);
i = i + 1;
}
return 0;
}
和 i等5就跳过本次循环
#include <stdio.h>
int main()
{
int i = 1;
while (i <= 10)
{
if (i == 5)
continue;
printf("%d ", i);
i = i + 1;
}
return 0;
}
二、for
1. 使用模板for(配置初始化;判定循环条件;调整循环语句)下一行加上循环语句
比如打印1-10
#include <stdio.h>
int main()
{
int i = 0;
//for(i=1/*初始化*/; i<=10/*判断部分*/; i++/*调整部分*/)
for (i = 1; i <= 10; i++)
{
printf("%d ", i);
}
return 0;
}
2.for配合continue和break 效果基本和while循环差不多
例如 i等于五跳出循环
#include <stdio.h>
int main()
{
int i = 0;
for (i = 1; i <= 10; i++)
{
if (i == 5)
break;
printf("%d ", i);
}
return 0;
}
和 i等于五跳出本次循环
#include <stdio.h>
int main()
{
int i = 0;
for (i = 1; i <= 10; i++)
{
if (i == 5)
continue;
printf("%d ", i);
}
return 0;
}
3.for变种
无尽循环for
int main()
{
for (;;)
{
printf("hehe\n");
}
return 0;
}
循环叠加
#include <stdio.h>
int main()
{
int i = 0;
int j = 0;
for (i = 0; i < 10; i++)
{
for (j = 0; j < 10; j++)
{
printf("+1\n");
}
}
return 0;
}
无初始化循环
#include <stdio.h>
int main()
{
int i = 0;
int j = 0;
{
for (; j < 10; j++)
{
printf("+1\n");
}
}
return 0;
}
多变量控制循环
#include<stdio.h>
int main()
{
int x, y;
for (x = 0, y = 0; x < 2 && y < 5; ++x, y++)
{
printf("+1\n");
}
return 0;
}
三、do while()循环
1.do.....................(需要循环的内容)........while(判断条件)
效果类似于把while反过来
例如
#include <stdio.h>
int main()
{
int i = 10;
do
{
printf("%d\n", i);
} while (i < 10);
return 0;
}
2.配合break和continue使用 基本和while一摸一样
例如 i=5跳出循环
#include <stdio.h>
int main()
{
int i = 10;
do
{
if (5 == i)
break;
printf("%d\n", i);
} while (i < 10);
return 0;
}
和 i=5跳出本次循环
#include <stdio.h>
int main()
{
int i = 10;
do
{
if (5 == i)
continue;
printf("%d\n", i);
} while (i < 10);
return 0;
}
特殊语句
goto语句使用
在程序中插入入口 通过goto跳转
可以有效地跳出循环
成效为
int main()
{
for (;;)
for (;;)
for (;;)
for (;;)
//显然这里跳出需要好几个break 但是一个goto就可以完成
goto A;
A:
printf("跳出了");
return 0;
}