前言
在学习程序的过程中,结构可以分为是顺序结构、选择结构(if、switch)和循环结构(for、while、do...while)顺序结构顾名思义,也是最好理解和最简单的。在这里主要对选择结构和循环结构进行学习。
第一章 if语句
第一节 if语句的书写形式
1. if(条件){条件体} if(条件){条件体}
2. if(条件){条件体} else{条件体}
3. if(条件){条件体} else if(条件){条件体}
可以通俗理解为 如果满足了怎样的条件,就可以进入到条件体中,实现该目的。举例:
#include<stdio.h>
int main ()
{
int age = 100;
//书写形式1
if (age<18)
printf("未成年");
//else if (18<=age<28) //错误写法 原因:age=10<18就返回0值 0<28 返回1值 于是输出青年
else if(age >= 18 && age < 28)
printf("青年");
else if(age >= 28 && age < 50)
printf("壮年");
else if(age >= 50 && age < 90)
printf("老年");
else printf("老不死");
// 书写形式2
// if (age<18)
// printf("未成年");
// //else if (18<=age<28) //错误写法 原因:age=10<18就返回0值 0<28 返回1值 于是输出青年
// else {
// if(age >= 18 && age < 28)
// printf("青年");
// else if(age >= 28 && age < 50)
// printf("壮年");
// else if(age >= 50 && age < 90)
// printf("老年");
// else printf("老不死");
// }
return 0;
}
该案例中需要注意的是,条件表达式需要使用正确计算机语言进行表达,要实现数学语言和计算机语言的转换。
而在if...else语句中,else与离它最近的if进行匹配,而不是和其位置对应的if相匹配。举例:
#include<stdio.h>
int main(){
int a = 0;
int b = 2;
if (a==1)
if (b==2)
printf("hehe\n");
else
printf("haha\n"); //else与第二个if匹配——什么也不输出
//修正
// int a = 0;
// int b = 2;
// if (a==1)
// {
// if (b==2)
// printf("hehe\n");
// }
// else
// printf("haha\n"); //else与第一个if匹配——输出haha
return 0;
}
第二节 练习
1.判断一个数是否是奇数
2. 输出1-100之间的奇数
(答案在文章最后,先思考一下喽)
第二章 switch语句
第一节 switch语句的书写形式
1. switch (整型表达式){
case 整型常量表达式:...;break;
default :...
}
其中,case决定循环入口,break决定循环出口。在case以外的情况,就执行default命令
2. switch(整形表达式){
case 整型常量表达式1:
case 整型常量表达式2:
case 整型常量表达式3:...; break;
...
default : ...
}
该书写形式适用于 “ 不同模式触发相同功能 ” 的情况。举例:
int day = 0;
scanf("%d\n",&day);
switch (day)
{
case 1:
case 2:
case 3:
case 4:
case 5:
printf("工作日");
break;
case 6:
case 7:
printf("休息日");
break;
}
第二节 练习
3. 请分析以下代码,并在不跑程序的情况下,回答m n的值分别为多少。
#include<stdio.h>
int main()
{
int n = 1;
int m = 2;
switch (n)
{
case 1:
m ++;
case 2:
n ++;
case 3:
switch (n)
{
case 1:
n ++;
case 2:
m ++;
n ++;
break;
}
case 4:
m ++;
break;
default:
break;
}
printf("m = %d, n = %d",m,n);
return 0;
}
第三章 练习答案
//1.判断一个数是否为奇数
int num, a;
scanf("%d\n",&num);
if (num % 2 == 1)
{
printf("%d是奇数",num);
}
else
printf("%d不是奇数",num);
//2.输出1-100之间的奇数
int i;
for(i = 1;i<101;i++)
{
if(i % 2 == 1)
printf("%d\n",i);
}
//3. m = 5, n = 3