流程控制《1》if
2015-06-20 15:07
190 查看
#include <stdio.h>
/*
代码风格有以下两种,建议使用第一种方式
if (条件) {
}
if (条件)
{
}
*/
/*
程序执行的流程,有以下三种结构:
1,顺序结构
2,选择结构
形式1:
if (条件) { //只有在条件成立的情况下,才执行代码段,否则什么也不做
代码段
}
形式2:
if (条件) { //如果条件成立,那么执行代码段1,否则执行代码段2
代码段1
} else {
代码段2
}
形式3:
if (条件1) {
} else if (条件2) {
} else if (条件3) {
} else {
}
形式4:嵌套形式的if...else
if (条件1) { //如果条件1成立,那么执行代码段1,否则进入else分支,判断条件2是否成立,如果成立,执行代码段2,否则执行代码段3
代码段1
} else {
if (条件2) {
代码段2
} else {
代码段3
}
}
形式5://不建议,应该是就算只有一条语句需要执行,那么也请用{}包住
if (条件)
语句1;
//语句2;
*/
int main()
{
//顺序执行下面两行代码
printf("hello\n");
printf("world\n");
int a =
3, b = 4;
if (a != b) {
printf("%d != %d\n", a, b);
}
if (a == b) {
printf("%d == %d\n", a, b);
} else {
//else if (a != b)
printf("%d != %d\n", a, b);
}
if (a == b) {
printf("%d == %d\n", a, b);
}
else if (a < b) {
printf("%d < %d\n", a, b);
}
else {
printf("%d > %d\n", a, b);
}
if (a == b) {
printf("%d == %d\n", a, b);
} else {
// a != b
if (a < b) {
printf("%d < %d\n", a, b);
}
else {
printf("%d > %d\n", a, b);
}
}
/*
//下面的写法错误,无法通过编译
if (a == b)
else
//code
*/
if (a == b) {}
//{}是空语句
else
a = b;
b =
10;
//无论else分支是否成立,该行语句和下一行语句都会执行,因为其实只有103这一行是属于else分支的
printf("a = %d, b = %d\n", a, b);
a =
3, b = 4;
//下面这一段代码和上一段代码是一样的,只有101行和111行的书写形式不同而已
if (a == b);
//;是空语句
else
a = b;
b =
10;
printf("a = %d, b = %d\n", a, b);
//课堂练习1:提示用户输入一个0~7之间的整数值,然后根据输入的数字输出是星期几?(0或7表示星期日,1表示星期一,以此类推)
/*
//1,提示用户输入
printf("请输入任意一个0~7之间的整数: \n");
//2,用户输入数据
int number;
scanf("%d", &number);
//3,根据输入的值进行打印
if (number == 0 || number == 7) {
printf("星期天\n");
} else if (number == 1) {
printf("星期一\n");
} else if (number == 2) {
printf("星期二\n");
} else if (number == 3) {
printf("星期三\n");
} else if (number == 4) {
printf("星期四\n");
} else if (number == 5) {
printf("星期五\n");
} else if (number == 6) {
printf("星期六\n");
} else {
printf("输入的数字不合适!\n");
}
*/
//把上面题目的要求修改为当输入的是0,7,6时,打印休息日,1,2,3,4,5打印工作日
/*
//if (0 <= number <= 7) //没有语法错误,但是不能用来判断number是否在0~7之间
if (number >= 0 && number <= 7) {
if (number == 0 || number == 6 || number == 7) {
printf("休息日!\n");
} else {
printf("工作日!\n");
}
} else {
printf("输入不合法!\n");
}
*/
/*
//判断是否闰年(年份能被4整除同时不能被100整除,或者能被400整除)
printf("请输入一个年份:\n");
int year;
scanf("%d", &year);
if (((year%4 == 0) && (year%100 != 0)) || (year%400==0)) {
printf("闰年\n");
} else {
printf("平年\n");
}
*/
//课堂练习2:提示用户输入一个分数,根据分数得到等级。(A级:90~100;B级:80~89;C级:70~79;D级:60~69;E级:0~59)
printf("请输入一个分数:");
int score;
scanf("%d", &score);
/*
//虽然没什么问题,但效率太低了
if (score >= 0 && score <= 100) {
if (score >= 90 && score <= 100) {
printf("level A\n");
}
if (score >= 80 && score <= 89) {
printf("level B\n");
}
if (score >= 70 && score <= 79) {
printf("level C\n");
}
if (score >= 60 && score <= 69) {
printf("level D\n");
}
if (score >= 0 && score <= 59) {
printf("level E\n");
}
} else {
printf("输入的成绩不合法!\n");
}*/
/*
//虽然改进了,但效率依然不太高
if (score >= 0 && score <= 100) {
if (score >= 90 && score <= 100) {
printf("level A\n");
} else if (score >= 80 && score <= 89) {
printf("level B\n");
} else if (score >= 70 && score <= 79) {
printf("level C\n");
} else if (score >= 60 && score <= 69) {
printf("level D\n");
} else if (score >= 0 && score <= 59) {
printf("level E\n");
}
} else {
printf("输入的成绩不合法!\n");
}*/
/*
//三种写法中效率最高的
if (score >= 0 && score <= 100) {
if (score >= 90 && score <= 100) {
printf("level A\n");
} else if (score >= 80) {
printf("level B\n");
} else if (score >= 70) {
printf("level C\n");
} else if (score >= 60) {
printf("level D\n");
} else if (score >= 0) {
printf("level E\n");
}
} else {
printf("输入的成绩不合法!\n");
}
*/
//使用if语句需要注意下面几点:
int abc =
10;
/*
//下面的写法,使得编译器不明白x的作用范围,所以编译器直接报错
if (abc >= 10)
int x = 20;
*/
if (abc >=
10) {
int x =
20;
//限定了x的作用范围是在if语句块内
}
//printf("x = %d\n", x); //错误,x的作用范围仅限于if语句块内,出了语句块,所占据的内存空间已经被回收了,所以无法访问
abc =
0;
//if (abc = 0) {
//判断时,条件书写形式:常量 ==
变量
if (0
== abc) { //这种写法的好处是:万一漏写一个=号,编译器会直接报错
printf("abc现在的值是:%d\n",
abc);
}
return
0;
}
/*
代码风格有以下两种,建议使用第一种方式
if (条件) {
}
if (条件)
{
}
*/
/*
程序执行的流程,有以下三种结构:
1,顺序结构
2,选择结构
形式1:
if (条件) { //只有在条件成立的情况下,才执行代码段,否则什么也不做
代码段
}
形式2:
if (条件) { //如果条件成立,那么执行代码段1,否则执行代码段2
代码段1
} else {
代码段2
}
形式3:
if (条件1) {
} else if (条件2) {
} else if (条件3) {
} else {
}
形式4:嵌套形式的if...else
if (条件1) { //如果条件1成立,那么执行代码段1,否则进入else分支,判断条件2是否成立,如果成立,执行代码段2,否则执行代码段3
代码段1
} else {
if (条件2) {
代码段2
} else {
代码段3
}
}
形式5://不建议,应该是就算只有一条语句需要执行,那么也请用{}包住
if (条件)
语句1;
//语句2;
*/
int main()
{
//顺序执行下面两行代码
printf("hello\n");
printf("world\n");
int a =
3, b = 4;
if (a != b) {
printf("%d != %d\n", a, b);
}
if (a == b) {
printf("%d == %d\n", a, b);
} else {
//else if (a != b)
printf("%d != %d\n", a, b);
}
if (a == b) {
printf("%d == %d\n", a, b);
}
else if (a < b) {
printf("%d < %d\n", a, b);
}
else {
printf("%d > %d\n", a, b);
}
if (a == b) {
printf("%d == %d\n", a, b);
} else {
// a != b
if (a < b) {
printf("%d < %d\n", a, b);
}
else {
printf("%d > %d\n", a, b);
}
}
/*
//下面的写法错误,无法通过编译
if (a == b)
else
//code
*/
if (a == b) {}
//{}是空语句
else
a = b;
b =
10;
//无论else分支是否成立,该行语句和下一行语句都会执行,因为其实只有103这一行是属于else分支的
printf("a = %d, b = %d\n", a, b);
a =
3, b = 4;
//下面这一段代码和上一段代码是一样的,只有101行和111行的书写形式不同而已
if (a == b);
//;是空语句
else
a = b;
b =
10;
printf("a = %d, b = %d\n", a, b);
//课堂练习1:提示用户输入一个0~7之间的整数值,然后根据输入的数字输出是星期几?(0或7表示星期日,1表示星期一,以此类推)
/*
//1,提示用户输入
printf("请输入任意一个0~7之间的整数: \n");
//2,用户输入数据
int number;
scanf("%d", &number);
//3,根据输入的值进行打印
if (number == 0 || number == 7) {
printf("星期天\n");
} else if (number == 1) {
printf("星期一\n");
} else if (number == 2) {
printf("星期二\n");
} else if (number == 3) {
printf("星期三\n");
} else if (number == 4) {
printf("星期四\n");
} else if (number == 5) {
printf("星期五\n");
} else if (number == 6) {
printf("星期六\n");
} else {
printf("输入的数字不合适!\n");
}
*/
//把上面题目的要求修改为当输入的是0,7,6时,打印休息日,1,2,3,4,5打印工作日
/*
//if (0 <= number <= 7) //没有语法错误,但是不能用来判断number是否在0~7之间
if (number >= 0 && number <= 7) {
if (number == 0 || number == 6 || number == 7) {
printf("休息日!\n");
} else {
printf("工作日!\n");
}
} else {
printf("输入不合法!\n");
}
*/
/*
//判断是否闰年(年份能被4整除同时不能被100整除,或者能被400整除)
printf("请输入一个年份:\n");
int year;
scanf("%d", &year);
if (((year%4 == 0) && (year%100 != 0)) || (year%400==0)) {
printf("闰年\n");
} else {
printf("平年\n");
}
*/
//课堂练习2:提示用户输入一个分数,根据分数得到等级。(A级:90~100;B级:80~89;C级:70~79;D级:60~69;E级:0~59)
printf("请输入一个分数:");
int score;
scanf("%d", &score);
/*
//虽然没什么问题,但效率太低了
if (score >= 0 && score <= 100) {
if (score >= 90 && score <= 100) {
printf("level A\n");
}
if (score >= 80 && score <= 89) {
printf("level B\n");
}
if (score >= 70 && score <= 79) {
printf("level C\n");
}
if (score >= 60 && score <= 69) {
printf("level D\n");
}
if (score >= 0 && score <= 59) {
printf("level E\n");
}
} else {
printf("输入的成绩不合法!\n");
}*/
/*
//虽然改进了,但效率依然不太高
if (score >= 0 && score <= 100) {
if (score >= 90 && score <= 100) {
printf("level A\n");
} else if (score >= 80 && score <= 89) {
printf("level B\n");
} else if (score >= 70 && score <= 79) {
printf("level C\n");
} else if (score >= 60 && score <= 69) {
printf("level D\n");
} else if (score >= 0 && score <= 59) {
printf("level E\n");
}
} else {
printf("输入的成绩不合法!\n");
}*/
/*
//三种写法中效率最高的
if (score >= 0 && score <= 100) {
if (score >= 90 && score <= 100) {
printf("level A\n");
} else if (score >= 80) {
printf("level B\n");
} else if (score >= 70) {
printf("level C\n");
} else if (score >= 60) {
printf("level D\n");
} else if (score >= 0) {
printf("level E\n");
}
} else {
printf("输入的成绩不合法!\n");
}
*/
//使用if语句需要注意下面几点:
int abc =
10;
/*
//下面的写法,使得编译器不明白x的作用范围,所以编译器直接报错
if (abc >= 10)
int x = 20;
*/
if (abc >=
10) {
int x =
20;
//限定了x的作用范围是在if语句块内
}
//printf("x = %d\n", x); //错误,x的作用范围仅限于if语句块内,出了语句块,所占据的内存空间已经被回收了,所以无法访问
abc =
0;
//if (abc = 0) {
//判断时,条件书写形式:常量 ==
变量
if (0
== abc) { //这种写法的好处是:万一漏写一个=号,编译器会直接报错
printf("abc现在的值是:%d\n",
abc);
}
return
0;
}
相关文章推荐
- 软件工程师需要数学的真正理由
- 帝国ECMS6.5灵动标签汇集
- POJ 1067 && HDU 1527 取石子游戏(博弈论)
- 杭电1302 The Snail
- 我是十娘沉梦江,遍洒芳汀,东流少语,喜欲狂,刹时惊梦,空一场!
- ListView已到底部和顶部的判断
- javascript基本包装类型
- 又是整数划分(poj1032)
- 记一次网站服务器搬迁实录
- Android调试的一些常用命令行
- 基于opencv在摄像头ubuntu根据视频获取
- leetcode--Binary Search Tree Iterator
- 《C专家编程》笔记二:第三章 分析C语言的声明
- 变量的作用域和scanf
- JS 、ExtJS、 Jquery、 Ajax
- 今天心情不好。。。
- 读《人,绩效和职业道德》有感
- VMware Workstation Server服务不能启动-vmwaer共享虚拟机失败
- MIT algorithm 笔记(视频2)
- bzoj1312