——黑马程序员——C语言中程序结构(一)
在C语言中程序的结构分为:顺序结构、分支结构、循环结构三大类。
一、顺序结构
在顺序结构中,各语句是自上而下顺序执行的,执行完上一个语句就自动执行下一个语句,是无条件的, 不必做任何的判断,他是最简单的程序结构。
二、分支结构
在程序设计过程中,实际上在很多情况下,需要根据某个条件是否满足来决定是否执行指定的操作任务,或者从给定的两种或者多种操作中选择其一。这就是分支结构要解决的问题。
(1)if 语句:用来实现两个分支的选择结构
if 语句一般形式如下:表示如果表达式为真,则执行语句块1,
if (表达式)
{
语句块1
}
语句块2
if 语句中表达式可以是关系表达式、逻辑表达式,甚至是数值表达式。
原理:计算括号中表达式的值,为真执行{ }中的语句块,如果为假则不会执行{ }语句块1
#include <stdio.h>
#include <stdlib.h>
int main()
{
//定义变量
int a = 0;
//提示用户输入
printf("请输入一个十以内的阿拉伯数字:\n");
//接收用户输入的值
scanf("%d",&a);
//判断输入的值是否等于8
if(a == 8)
{
printf("这是一个很吉利的数字!\n");
}else
{
printf("嘿嘿!你好!\n");
}
system("pause");
return 0;
}
输入4后:
if ... else 语句
if (表达式)
{
语句块1
}
else
{
语句块2
}
原理:如果表达式为真,则执行语句块1,否则执行语句块2
if ...else 语句的嵌套
格式为:
if (表达式1)
{
语句1
}
else if (表达式2)
{
语句2
}
else if (表达式3)
{
语句3
}
else if (表达式m)
{
语句m
}
else
{
语句m+1
}
#include <stdio.h>
#include <stdlib.h>
int main()
{
//定义变量
int a = 0;
//提示用户输入
printf("请输入一个十以内的阿拉伯数字:\n");
//接收用户输入的值
scanf("%d",&a);
//判断输入的值是否等于8
if(a == 8)
{
printf("这是一个很吉利的数字!\n");
//判断是否大于8
}else if(a > 8)
{
printf("你输入的数大于8!\n");
//只剩下小于8的情况
}else
{
printf("你输入的数小于8!\n");
}
system("pause");
return 0;
}
当 if (表达式)后只有一个语句时可以省略{ },但是在此提示最好不要省略。
(2)switch 语句:用来实现多个分支的选择结构
switch (表达式)
{
case常量1:
语句1
case常量2:
语句2
case常量3:
语句3
case常量n
语句n
default :
语句n+1
}
说明:(1)switch ()内的“表达式”,其值的类型应为整型类型,也可以是字符型,可以是常量、变量、表达式
(2)switch 下面的{ }内是一个复合语句可以没有default 语句
(3)每一个case常量必须互不相同,否则出现互相矛盾的现象
(4)case 语句的穿透:是指执行完某个case语句后并没有停止而是继续向下执行,
case语句的穿透问题解决方法:在每个case语句之后加上break,break的作用是结束switch语句,没有遇到break语句程序就会继续往下执行知道遇到break语句结束switch语句
#include <stdio.h>
#include <stdlib.h>
int main()
{
//定义变量
int num = 0;
//提示用户输入
printf("请输入一个五以内的数字按回车结束\n");
//接收键盘输入的数据
scanf("%d",&num);
//判断用户输入的数是否正确
if(num < 0&& num > 5)
{
//提示重新输入
printf("您输入的数不符合要求请重新输入\n");
}
//判断num的值
switch (num)
{
//如果等于0打印出0
case 0:
<span style="white-space:pre"> </span> printf("您输入的数是%d\n",num);
<span style="white-space:pre"> </span>printf("你好!\n");
//如果等于1,打印出1
case 1:
<span style="white-space:pre"> </span>printf("您输入的数是%d\n",num);
printf("你好吗?\n");
//如果等于2,打印出2
case 2:
<span style="white-space:pre"> </span> printf("您输入的数是%d\n",num);
printf("你好不好?\n");
//如果等于3,打印出3
case 3:
<span style="white-space:pre"> </span> printf("您输入的数是%d\n",num);
printf("你到底好吗?\n");
//如果等于4,打印出4
case 4:
<span style="white-space:pre"> </span>printf("您输入的数是%d\n",num);
printf("你到底好不好?\n");
//如果等于5,打印出5
case 5:
<span style="white-space:pre"> </span> printf("您输入的数是%d\n",num);
printf("你好不好?\n");
}
system("pause");
return 0;
}
加入break之后
#include <stdio.h>
#include <stdlib.h>
int main()
{
//定义变量
int num = 0;
//提示用户输入
printf("请输入一个五以内的数字按回车结束\n");
//接收键盘输入的数据
scanf("%d",&num);
//判断用户输入的数是否正确
if(num < 0&& num > 5)
{
//提示重新输入
printf("您输入的数不符合要求请重新输入\n");
}
//判断num的值
switch (num)
{
//如果等于0打印出0
case 0:
<span style="white-space:pre"> </span>printf("您输入的数是%d\n",num);
printf("你好!\n");
//结束switch语句
<span style="white-space:pre"> </span> break;
//如果等于1,打印出1
case 1:
<span style="white-space:pre"> </span>printf("您输入的数是%d\n",num);
printf("你好吗?\n");
//结束switch语句
<span style="white-space:pre"> </span>break;
//如果等于2,打印出2
case 2:
<span style="white-space:pre"> </span>printf("您输入的数是%d\n",num);
printf("你好不好?\n");
//结束switch语句
<span style="white-space:pre"> </span> <span style="white-space:pre"> </span>break;
//如果等于3,打印出3
case 3:
<span style="white-space:pre"> </span>printf("您输入的数是%d\n",num);
printf("你到底好吗?\n");
//结束switch语句
<span style="white-space:pre"> </span>break;
//如果等于4,打印出4
case 4:
<span style="white-space:pre"> </span>printf("您输入的数是%d\n",num);
printf("你到底好不好?\n");
//结束switch语句
<span style="white-space:pre"> </span>break;
//如果等于5,打印出5
case 5:
<span style="white-space:pre"> </span>printf("您输入的数是%d\n",num);
printf("你好不好?\n");
}
system("pause");
return 0;
}
#include <stdio.h>
#include <stdlib.h>
int main()
{
//定义变量
int num = 0;
//提示用户输入
printf("请输入一个五以内的数字按回车结束\n");
//接收键盘输入的数据
scanf("%d",&num);
//判断用户输入的数是否正确
if(num < 0&& num > 5)
{
//提示重新输入
printf("您输入的数不符合要求请重新输入\n");
}
//判断num的值
switch (num)
{
//如果等于0打印出0
case 0:
<span style="white-space:pre"> </span> <span style="white-space:pre"> </span>printf("您输入的数是%d\n",num);
printf("你好!\n");
//结束switch语句
<span style="white-space:pre"> </span>break;
//如果等于1,打印出1
case 1:
<span style="white-space:pre"> </span>printf("您输入的数是%d\n",num);
printf("你好吗?\n");
//结束switch语句
<span style="white-space:pre"> </span>break;
//如果等于2,打印出2
case 2:
<span style="white-space:pre"> </span>printf("您输入的数是%d\n",num);
printf("你好不好?\n");
//结束switch语句
<span style="white-space:pre"> </span>break;
//如果等于3,打印出3
case 3:
<span style="white-space:pre"> </span>printf("您输入的数是%d\n",num);
printf("你到底好吗?\n");
//如果等于4,打印出4
case 4:
<span style="white-space:pre"> </span>printf("您输入的数是%d\n",num);
printf("你到底好不好?\n");
//结束switch语句
<span style="white-space:pre"> </span>break;
//如果等于5,打印出5
case 5:
<span style="white-space:pre"> </span>printf("您输入的数是%d\n",num);
printf("你好不好?\n");
}
system("pause");
return 0;
}