您的位置:首页 > 其它

流程控制《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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: