600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > C语言分支语句if else

C语言分支语句if else

时间:2022-05-26 09:17:43

相关推荐

C语言分支语句if else

现实中的所有时间都可分成下面三中基本结构:顺序结构、选择结构、循环结构。而计算机语言是让计算机代替人们进行处理事情的工具,所以计算机语言中不外乎也就是这三种结构。

分支语句(选择结构)有两种:if语句和switch语句,语句:C语言中由一个分号;隔开的就是一条语句。

简单的If语句:

int main(){int age = 10;if (age >= 18)printf("成年\n");elseprintf("未成年\n");return 0;}

注意:if和else后不加花括号时其作用范围只有其后面一条语句,如

int main(){int age = 20;if (age >= 18)printf("成年\n");elseprintf("未成年\n");printf("不能谈恋爱\n");//输出结果为成年+不能谈恋爱return 0;}

要让其控制多条语句时后面要用花括号括起来

int main(){int age = 20;if (age >= 18){printf("成年\n");}else{printf("未成年\n");printf("不能谈恋爱\n");//输出结果为成年+不能谈恋爱}return 0;}

多分支If语句

int main(){int age = 10;if (age < 18)printf("未成年\n");else if (age >= 18 && age < 26)/*不能写成18 <= age < 26, 存在逻辑错误,若age大于26先判定18<=age为真,再判定1<26,判定为真*/ //判定条件也可直接写成age < 26,else 中隐含着age >= 18的条件printf("青年\n");else if (age >= 26 && age < 40)printf("中年\n");else if (age >= 40 && age < 60)printf("壮年\n");else if (age >= 60 && age < 100)printf("老年\n");return 0;}

代码规范性问题

1.悬空else:

//悬空elseint main(){int a = 0;int b = 2;if (a == 1)if (b == 2)printf("1\n");elseprintf("2\n");//此程序不输出任何东西return 0;}

此程序不输出任何东西,因为else遵循就近原则,即else和最近的if进行匹配,但此程序代码不规范,else与第一个if对齐,容易给人造成误解。

可以改为以下格式:

int main(){int a = 0;int b = 2;if (a == 1){if (b == 2){printf("1\n");}else{printf("2\n");}}return 0;}

2.

int test(){if (1) //if(1)表示恒成立,因为计算机中1表示真,0表示假return 1;return 0;}int main(){printf("%d\n", test());return 0;}

int test(){if (1)return 1;elsereturn 0;}int main(){printf("%d\n", test());return 0;}

上面两个程序的逻辑原理和输出结果都是一样的,但是第二个程序明显更加易读。

3.判定相等问题

正确代码

//判断a是否等于2int main(){int a = 1;if (a == 2){printf("a等于2\n");}return 0;}

若此时不小心在判定条件中少打一个等号,表示将2赋值给a,程序并不会报错,但是会输出错误的结果,如下

//判断a是否等于2int main(){int a = 1;if (a = 2){printf("a等于2\n");//输出a等于2,显然错误}return 0;}

所以我们可以采用判定相等时让数字在前的方法:

//判断a是否等于2int main(){int a = 1;if (2 = a) //数字在前时少打一个=号,程序报错{printf("a等于2\n");}return 0;}

此时程序报错,能使我们更加容易发现问题。

练习:输出1-100内的所有奇数:

1.while循环

int main(){int i = 0;while (i < 101){if (i % 2 == 1){printf("%d\n", i);}i++;}return 0;}

2.for循环

int main(){int i = 0;for (i; i < 101; i++){if (i % 2 == 1){printf("%d\n", i);}}return 0;}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。