第三章 分支结构
二分支结构(2)
if-else语句
if(表达式)
语句1;
else
语句2;
数字奇偶分类
scanf("%d",&n);
for(i=1;i<=n;i++) //这里的n表示输入了n个数字,进行n个循环
{
scanf("%d",&number); //通过for循环来对每一个输入的数字进行if-else奇偶分类
if(number%2!=0){ count_odd++;}
else { count_even++;}
}
*统计个数时要在主程序进行前赋值,如该程序count_odd=0;
和count_even=0;
省略else的if语句
if(表达式)
语句1;
//否则就什么也不做
多分支结构
else-if语句
if(表达式1)
语句1;
else if(表达式2)
语句2;
...
else if(表达式n-1)
语句n-1;
else
语句n;
嵌套的if-else语句
if(表达式1)
if(表达式2) 语句1;
else 语句2; //内嵌的if最好不要省略else部分
else
if(表达式3) 语句3;
else 语句4;
*else与if的匹配原则:else与最靠近它的、没有与别的else匹配过的if相配
*计算分段函数常用if-else来实现:常用双精度浮点型变量double x,y;
输出结果常要小数点后两位%.2f
switch语句
switch(表达式) //表达式和常量表达式一般是整型或字符型,例case 1: case '*':
{
case 常量表达式1:语句段1;break; //语句段可一可多可为空
case 常量表达式2:语句段2;break;//记住case和常量表达式之间有空格,常量表达式不可以是一个逻辑判断的式子,故统计字母要
... //把52个大小写字母单列出来
case 常量表达式n:语句段n;break;
default: 语句段n+1;break;//default可省略,若省则当表达式的值与任一常量表达式不等,就什么都不执行
}
*共用语句段
switch(op)
{
case '0':
case '1':
digit++;
break;
}
*可以使用break跳出for循环 if(choice==0)
break;
*两个数的简单计算机 对%和/都要对除数0作特殊处理
四则运算
字符型数据(类型名:char)
字符型常量
*单个字符,用单引号和括起来的字符组成
*常见有’A’、‘a’、‘9’、‘$’、‘+’
*ASCII字符集,共256个。特点:唯一次序值
常见(十进制):‘A’到’Z’——65到90
‘a’到’z’——97到122
‘0’到’9’——48到57
字符型变量
*类型名char,eg:char op;
*赋值形式, 例:op='+';
*判定时要==,例:if(op=='+'){...;}
字符型数据的输入和输出
*输入输出:函数scanf()和printf() scanf("%c",&op);
*字符输入函数getchar() op=getchar();
*字符输出函数putchar() putchar(op);
putchar('a');
小程序
int first=1,k; //输入ABCDEFGH,输出A-B-C-D-E-F-G-H
for(k=1;k<=8;k++) //都是字符型数据,故分解A -B -C .....-H ,就第一个不同
{
ch=getchar();
if(first==1) //设计first=1和first=0,分支表达
{
putchar(ch);
first=0;
}
else
{
putchar('-');
putchar(ch);
}
}
字符型判断表达if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z')){...;}
逻辑运算
*逻辑运算符: !(逻辑非) &&(逻辑与) ||(逻辑或)
*逻辑运算符的优先级低于关系运算符,故(ch>='a')&&(ch<='z')
可写成ch>='a'&&ch<='z'
*闰年(能被4整除但不能被100整除,或能被400整除)表达式 (year%4==0&&year%100!=0)||(year%400==0)
*统计字符,在循环进行前输入 getchar();
表示读入并舍弃换行符,若无掉用该式,则换行符作为第一个需统计的字符