IF语句课件

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

else {if (year%400==0) leap=1; }
if (leap) printf("%d is a leap year.\n",year);
else printf("%d is not a leap year.\n",year);
}
[程序演示]
利用逻辑运算能描述复杂条件的特点,可将上述程序优化如下: main() {int year;
• [案例3.3] 写一程序,从键盘上输入1年份 year(4位十进制数),判断其是否闰年。 闰年的条件是:能被4整除、但不能被100 整除,或者能被400整除
算法设计要点:
(1)如果X能被Y整除,则余数为0,即如果X% Y的值等于0,则表示X能被Y整除!
( 2)首 先 将 是否闰年的标志 leap预置为 0(非闰 年),这样仅当year为闰年时将leap置为1即可。这种处 理两种状态值的方法,对优化算法和提高程序可读性非
max=num1; else
max=num2; if (num3>max)
max=num3; printf("The three numbers are:%d,%d,%d\n",num1,num2,num3); printf("max=%d\n",max); }
程序运行情况如下: Please input three numbers:11,22,18↙
第三章
[例3.1] 从键盘上输入一个字符,如果它是大写字 母,则把它转换成小写字母输出;否则,直接输出。
/*案例文件名:AL4_4.C*/ main() { char ch; printf(“请输入一个字母: "); scanf("%c",&ch); if (ch>='A' && ch<='Z')
(2)指定else子句时
当“表达式”的值不等于0(即判定为“逻辑 真”)时,则执行语句组1,然后转向下一条语 句;否则,执行语句组2。
3.if语句的嵌套与嵌套匹配原则
if语句允许嵌套。所谓if语句的嵌套是指,在 “语句组1”或(和)“语句组2”中,又包含有if语 句的情况。
if语句嵌套时,else子句与if的匹配原则:与 在它上面、距它最近、且尚未匹配的if配对。
(1)if语句中的“表达式”必须用“(”和“)”括起来。 (2)else子句(可选)是if语句的一部分,必须与if配对使用,不 能单独使用。 (3)当if和else下面的语句组,仅由一条语句构成时,也可不使 用复合语句形式(即去掉花括号)。
2.if语句的执行过程 (1)缺省else子句时
当“表达式”的值不等于0(即判定为“逻辑真”) 时,则执行语句组1,否则直接转向执行下一条。
{ ch=ch+32; printf(“你输入的大写字母是:%c\n",ch);
} }
例3 .3求X的绝对值。 Main() {
float x,y; if(x>=0)
x=%f”,x); }
1.if语句的一般格式
if(表达式) {语句组1;}
[else {语句组2;} ]
printf("Please input the year:"); scanf("%d",&year); if ((year%4==0 && year%100!=0)||(year%400==0))
printf("%d is a leap year.\n",year); else
printf("%d is not a leap year.\n",year); }
常有效,请读者仔细体会。参考程序如下:
/*功能:说明if语句的嵌套格式和用法。*/
main()
{int year,leap=0;
/* leap=0:预置为非闰年*/
printf("Please input the year:");
scanf("%d",&year);
if (year % 4==0) {if (year % 100 != 0) leap=1;}
The three numbers are:11,22,18
max=22
本案例中的第1个if语句,可优化为如下不带else子句 的形式:
max=num1;
if(num2>max) max=num2; 这种优化形式的基本思想是:首先取一个数预置为 max(最大值),然后再用max依次与其余的数逐个比较, 如果发现有比max大的,就用它给max重新赋值,比较完 所有的数后,max中的数就是最大值。这种方法,对从3 个或3个以上的数中找最大值的处理,非常有效。请读者 仔细体会。
为明确匹配关系,避免匹配错误,强烈建议: 将内嵌的if语句,一律用花括号括起来。
4.说明
(1)if后面的“表达式”,除常见的关系表达 式或逻辑表达式外,也允许是其它类型的数据, 如整型、实型、字符型等。
(2)if语句允许嵌套,但嵌套的层数不宜太多。 在实际编程时,应适当控制嵌套层数(2~3层)。
(3)“语句组1”和“语句组2”,可以只包含 一个简单语句,也可以是复合语句。
务必牢记:不管是简单语句,还是复合语句中
的各个语句,每个语句后面的分号必不可少!
[例3.2] 输入任意三个整数num1、num2、num3,求三个数中的最 大的一个数。 /*功能:说明if 语句的格式。*/ main() {
int num1,num2,num3,max; printf("Please input three numbers:"); scanf("%d,%d,%d",&num1,&num2,&num3); if (num1>num2)
相关文档
最新文档