C语言是结构化的程序设计语言,可分为5类:表达式语句、函数调用语句、控制语句、复合语句以及空语句。
控制语句是用于控制程序的执行流程,以控制程序的各种结构方式
支持3种结构:顺序结构、选择结构、循环结构
由特定的语句定义符组成,共有9种:
- 条件判断语句/分支语句:if语句、switch语句
- 循环执行语句:do...while语句、while语句、for语句
- 转向语句:break语句、goto语句、continue语句、return语句
选择语句
if语句
if语句由三种表达形式:
if(表达式)
{ 语句; }
if(表达式)
{ 语句1; }
else
{ 语句2; }
if(表达式)
{ 语句1; }
else if(表达式)
{ 语句2; }
else
{ 语句3; }
这里要注意的是,else是与离它最近的if语句匹配的,若语句有多条,需要加 { }
switch语句
switch(整型表达式)
{
case 整型常量表达式:
语句;
break;
default:
语句;
break;
}
switch的表达式必须包含整型(char也属于整型,因为字符存储的是ASCII码值)
case与default的顺序是可以调换的
switch语句可以嵌套,break只会跳出一层switch语句,嵌套中的break只能跳出嵌套的switch语句,而不是整个程序
循环语句
while语句
while()
{
语句;
}
break终止所在的循环,一次只会跳出一层循环
continue终止本次循环,直接跳到判断部分,进行下一次循环的判断
for语句
for(表达式1;表达式2;表达式3)
{
语句;
}
//表达式1:初始化部分
//表达式2:条件判断部分
//表达式3:调整部分
break 终止所在的循环
continue 终止本次循环,直接跳到表达式3,然后再进行下一次循环
do...while语句
do
{
语句;
}while(表达式);
do...while语句至少会循环一次
break 终止所在的循环
continue 终止本次循环,进行条件判断
转向语句
goto语句
goto语句可以终止程序在某些深度嵌套的结构的处理过程,但goto语句只能在一个函数内部跳转,不能跨函数跳转
多层循环语句使用break是无法直接跳出整个循环结构的,break只能从它所在层循环退出到上一层循环,这个时候就可以使用goto语句来简化操作
要注意!goto语句不能滥用,否则会导致程序发生错误
举个例子:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
char input[20] = { 0 };
//程序倒计时关机
system("shutdown -s -t 60");
again:
printf("请注意!!你的电脑将在一分钟后关机,如果输入:取消关机,就取消关机\n");
scanf("%s", input);
if (strcmp(input , "取消关机") == 0)
{
system("shutdown -a");
}
else
{
goto again;
}
return 0;
}
以上内容为C语言中选择与循环结构的相关知识,个人拙见,欢迎各位指正