目录
前言
C语言是结构化的程序设计语言:顺序结构、选择结构、循环结构。
分支语句(选择结构)
1、if
语法结构:
if(表达式)
语句;
if(表达式)
语句1;
else
语句2;
//多分支
if(表达式1)
语句1;
else if(表达式2)
语句2;
else
语句3;
|
注:建议在写这样的语句时要在 { } 中表达。因为像if这样的,默认只能管理一条语句,只有加上了 { } 才可以全部管理。
在这样的语句,表达式为真则执行,为假就不执行。在C语言中0为假,非0为真。
int main()
{
int age = 0;
scanf("%d", &age);
if (age > 18)
printf("未成年\n");
printf("交女朋友\n");
return 0;
}
此时输入17,还是会打印交女朋友。所以保险起见,在编写这样的代码时都带上 { } 。
第一种表达方式:
#include<stdio.h>
int main()
{
int age = 0;
scanf("%d", &age);
if (age < 18)
{
printf("未成年\n");
}
return 0;
}
第二种表达方式:
#include<stdio.h>
int main()
{
int age = 0;
scanf("%d", &age);
if (age < 18)
{
printf("未成年\n");
}
else
{
printf("成年\n");
}
return 0;
}
第三种表达方式:
#include<stdio.h>
// <18青少年
// 18-30青年
// 31-50中年
// 51-80中老年
// 80-100老年
// 100+老寿星
int main()
{
int age = 0;
scanf("%d", &age);
if (age < 18)
{
printf("青少年\n");
}
else if(age >= 18&&age <= 30)
{
printf("青年\n");
}
else if (age >= 31 && age <= 50)
{
printf("中年\n");
}
else if (age >= 51 && age <= 80)
{
printf("中老年\n");
}
else if (age >= 80 && age <= 100)
{
printf("老年\n");
}
else
{
printf("老寿星\n");
}
return 0;
}
2、switch
switch(整型表达式)
{
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;
}
当我们需要输入1-5,输出的是“weekday”;输入6-7,输出“weekend”时
#include <stdio.h>
int main()
{
int day = 0;
switch (day)
{
case 1:
case 2:
case 3:
case 4:
case 5:
printf("weekday\n");
break;
case 6:
case 7:
printf("weekend\n");
break;
}
return 0;
}
可以这样子,不会影响输出结果。
default子句:当 switch 表达式的值并不匹配所有 case 标签的值时,这个 default 子句后面的语句就会执行。所以,每个switch语句中只能出现一条default子句。 但是它可以出现在语句列表的任何位置,而且语句流会像执行一个case标签一样执行default子句。建议在写switch的时候,都要在最后加个default。
循环语句
1、while
//while
语法结构
while
(
表达式
)
循环语句
;
|
现在我们先看看break和continue的作用。
int main()
{
int n = 1;
while (n <= 10)
{
if (n == 5)
break;
printf("%d ", n);
n++;
}
return 0;
}
此时代码打印的结果为1 2 3 4
int main()
{
int n = 1;
while (n <= 10)
{
if (n == 5)
continue;
printf("%d ", n);
n++;
}
return 0;
}
此时代码1 2 3 4死循环。
2、for
for
(
表达式
1
;
表达式
2
;
表达式
3
)
{
循环语句;
}
表达式1
表达式1为初始化部分,用于初始化循环变量的。
表达式2
表达式2为条件判断部分,用于判断循环时候终止。
表达式3
表达式3为调整部分,用于循环条件的调整。
|
for的执行流程图
现在我们先看看在for循环中break和continue的作用,意义和在while循环中是一样的。
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
int n = 0;
for (n = 1; n <= 10; n++)
{
if (n == 5)
{
break;
}
printf("%d ", n);
}
return 0;
}
打印结果为:1 2 3 4。
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
int n = 0;
for (n = 1; n <= 10; n++)
{
if (n == 5)
{
continue;
}
printf("%d ", n);
}
return 0;
}
打印结果为:1 2 3 4 6 7 8 9 10。
3、do while()循环
do
{
循环语句
;
}
while
(
表达式
);
|
这个循环语句特点:先循环一次,之后再判断。
现在我们先看看在do while()循环中break和continue的作用,意义和在while循环中是一样的。
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
int n = 1;
do
{
if (n == 5)
{
break;
}
printf("%d ", n);
n++;
} while (n <= 10);
return 0;
}
打印结果为:1 2 3 4。
#include <stdio.h>
int main()
{
int i = 1;
do
{
if (5 == i)
continue;
printf("%d\n", i);
i++;
} while (i < 10);
return 0;
}
打印结果为:1 2 3 4死循环。
goto语句
1、认识
注:从理论上 goto语句是没有必要的,实践中没有goto语句也可以很容易的写出代码。 但是某些场合下goto语句还是用得着的,最常见的用法就是终止程序在某些深度嵌套的结构的处理过程。
2、形式及举例
for(...)
for(...)
{
for(...)
{
if(disaster)
goto error;
}
}
…
error:
if(disaster)
// 处理错误情况
当然goto不能跨函数,goto语句只能在一个函数内部跳转,不能跨函数跳转。
举个例子
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
#include<string>
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;
}
这次的内容就分享到这里,求个三连!!!