一、程序的基本 结构有三种:
(1)顺序结构
(2)分支结构(选择结构)
(3)循环结构
二、有几种语法形式
1、if 语句
有几种基本形式
(1)最简单的if语句
语法:
if(表达式)
{
...
语句块
...
}
如果表达式是成立(非0),就会执行语句块,否则就不会执行语句块
if(今天星期二)
{
我就要早点起床;
起完床洗漱一下;
来上课;
}
if 后面的小括号里面的表达式必须是 任意合法的表达式,表达式要么成立,要么不成立
只有成立的时候,才会执行后面的语句块
语句块
任意条语句,每一条语句后面都得“;”
一条/多条,空语句也行。
例:
int a = 3;
int b = 4;
int c = 5;
if(a + b > c)
c = a + b;
if后面的语句 任意条语句,建议都加“{}”,
如果不加“{}” 默认只管到一句话
①
int a = 3;
int b = 4;
int c = 5;
if(a + b > c)
{
c = a + b;
a = 4;
b = 8;
}
a = 4, b = 8, c = 7;
②
int a = 3;
int b = 4;
int c = 5;
if(a + b > c)
c = a + b;
a = 4;
b = 8;
a = 4, b = 8, c = 7;
③
int a = 3;
int b = 4;
int c = 5;
if(a + b < c)
c = a + b;
a = 4;//必定执行
b = 8;//必定执行
a = 4, b = 8, c = 5;
if(xxxx)
{}
一定要规范代码
该给“{}”,该缩进就缩进
练习:
求两个整数中,小的那个
输入2个数,输出较小的数
(2) else 子句
语法:
if(表达式)
{
语句块1
}
else
{
语句块2
}
如果 表达式 成立,执行语句块1,否则就执行语句块2
**** else 必须要和 if 一起用(if 在 else 前)
练习:
求两个整数中,大的那个
输入2个数,输出较大的数
输入一个年份,输出该年是平年还是闰年
(3) else if
**** else if 必须要和 if / else 一起用
if(表达式1)
{
语句块1
}
else if(表达式2)
{
语句块2
}
else if(表达式3)
{
语句块3
}
......
else if(表达式n)
{
语句块n
}
else
{
语句块n+1
}
如果表达式1成立,就执行语句块1
否则判断表达式2是否成立
如果表达式2成立,就执行语句块2
否则判断表达式3是否成立
.......
如果表达式n成立,就执行语句块n
否则 执行 语句 n+1
都是互斥
练习:
求两个整数中,大的那个
输入2个数,输出较大的数
输入一个学生的成绩,评级
[90,100]甲
[80, 90)乙
[70, 80)丙
[60, 70)丁
[0,60)戊
2、if 语句嵌套
if 语句中又有 if 语句
条件里面又有分条件.....
if(表达式1)
{
if(表达式2)
{
if()
{
......
}
else
{
....
}
}
else
{
if()
{
....
}
else
{
....
}
}
}
else
{
if(表达式3)
{
}
........
}
注意:
每个 if 语句 和 else 子句 都建议打括号,同时 记得“缩进”,看起来有层次感,便于阅读
如果看别人的代码,他不规范 怎么看懂?
else 与 if 匹配问题
if()
if()语句1;
else语句2;
else
if() 语句3;
else语句4;
语句5;
技巧:先匹配 最上面 else , else 总是和它上面、最近的、同一级、未匹配的 if 进行配对
if()
{
if()
{
语句1;
}
else
{
语句2;
}
}
else
{
if()
{
语句3;
}
else
{
语句4;
}
}
语句5;
3、switch
语法:
switch(表达式)
{
case 常量表达式1:语句块1; break;
case 常量表达式2:语句块2; break;
.
.
.
default:语句块;break;
}
说明:
(1) switch 后面 () 中的表达式的值必须是整数
(2) case 后面的表达式是常量表达式(不能出现变量),并且值也必须要是整数
(3) break 不是一个语句后面的必须,可以省略
(4) default 也不是一个必须要的,可以省略
(5) 每个 case 后常量表达式的值不能重复
switch 语句是用来把 "表达式" 的值 一一列举出来,与 case 后常量表达式的值进行匹配,
当匹配到某个 case ,就从该 case 语句一直执行下去 , 直到遇到 break ,或者 switch 的 "}"
如果 和 case "牵手失败" 就会执行 default 后面语句,直到遇到 break ,或者 switch 的 "}"
例
分析一下
int m = 8;
int n = 10;
switch(m)//①
{
case 1: printf("1\n");
case 8:printf("8\n");
case 9:
switch(n)//②
{
case 1:printf("2\n");break;
case 10:printf("4\n");break;//break 结束的 ②
}
case 10:printf("10\n");break;
}
8
4
10
if else 语句是用于范围匹配
switch 语句只能是值的匹配
作业:
1、输入3个不同数,按大到小输出(if else)
2、输入一个学生的成绩,评级(switch)
[90,100]甲
[80, 90)乙
[70, 80)丙
[60, 70)丁
[0,60)戊
可选:
3、输入年月日,判断该日是该年的第几天
4、简单算术计算器输入 两个数 和 运算符 输出结果
例:
输入 3 / 2
输出 3 / 2 = 1.50