c语言是一门结构化的语言,三种基本结构组成的算法可以完成任何复杂程序,这三种结构分别是顺序结构,选择结构(分支结构),循环结构。顺序结构是最简单的程序结构,也是最常用的程序结构,只要按照解决问题的顺序写出相应的语句就行,它的执行顺序是自上而下,依次执行。因此我们直接开始讲解选择结构。
补充-------语句:C语言中由一个分号隔开的就是一条语句。
1.2.1单分支
#include <stdio.h> //代码1 int main() { int age = 0; scanf("%d", &age); if(age<18) { printf("未成年\n"); } }
1.2.2 双分支
#include <stdio.h> int main() { int age = 0; scanf("%d", &age); if(age<18) { printf("未成年\n"); } else { printf("成年\n"); } }
1.2.3 多分支
#include <stdio.h> int main() { int age = 0; scanf("%d", &age); if(age<18) { printf("少年\n"); } else if(age>=18 && age<30) { printf("青年\n"); } else if(age>=30 && age<50) { printf("中年\n"); } else { printf("老寿星\n"); } }
注释:如果表达式的结果为真,则语句执行。
在C语言中如何表示真假?
0 表示假,非0表示真。#include<stdio.h> int main() { if(表达式) { 语句列表1; } else { 语句列表2; } return 0; }
其中一个{}就是一个代码块。
#include <stdio.h> int main() { int a = 0; int b = 2; if(a == 1) if(b == 2) printf("hehe\n"); else printf("haha\n"); return 0; }
看到这段代码屏幕会打印什么?
猜对了么?结果打印为空。实际上else是和它离的最近的if匹配。
//代码1 if (condition) { return x; } return y; //代码2 if(condition) { return x; } else { return y; } //代码3 int num = 1; if(num == 5) { printf("hehe\n"); } //代码4 int num = 1; if(5 == num) { printf("hehe\n"); }上述四段代码中代码一二的效果一样,代码三四的效果一样。但是代码二与代码四更好一些;代码一我们很容易搞错认为是一个单分支语句一个return y组成的顺序结构改成代码二就一目了然了;代码三中在判断相等时,我们很容易只写一个等号导致最后输出有误而且这样的错误我们还不容易察觉,但如果换成代码四的书写形式我们只写一个等号时编译就会出错我们很快就会发现错误。这样书写可以让我们节省不少找错误的时间。
switch ( 整型表达式 ) { 语句项 }
而语句项是
// 是一些 case 语句: // 如下: case 整形常量表达式 : 语句 ;
#include <stdio.h> int main() { int day = 0; scanf("%d",&day); switch(day) { case 1: printf("星期一\n"); break; case 2: printf("星期二\n"); break; case 3: printf("星期三\n"); break; case 4: printf("星期四\n"); break; case 5: printf("星期五\n"); break; case 6: printf("星期六\n"); break; case 7: printf("星期天\n"); break; } return 0;有时候我们的需求变了: 1. 输入 1-5 输出的是 “weekday”; 2. 输入 6-7 输出 “weekend" 代码变为
#include <stdio.h> //switch代码演示 int main() { int day = 0; scanf("%d",&day); switch(day) { case 1: case 2: case 3: case 4: case 5: printf("weekday\n"); break; case 6: case 7: printf("weekend\n"); break; } return 0; }break 语句的实际效果是把语句列表划分为不同的部分。 在最后一个 case 语句的后面加上一条 break语句。(之所以这么写是可以避免出现在以前的最后 一个 case 语句后面忘了添加 break语句)。
#include <stdio.h> int main() { int n = 1; int m = 2; switch (n) { case 1: m++; case 2: n++; case 3: switch (n) {//switch允许嵌套使用 case 1: n++; case 2: m++; n++; break; } case 4: m++; break; default: break; }
猜对了么!