if语句使用
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
结构化流程图:
输入a,b a>b
temp=a;a=b;b=temp; 输出a,b
程序代码:
#include <stdio.h> main( ) {
float a,b,temp; printf(“请输入两个数:\n”); scanf(“%f%f”,&a,&b); if(a>b)
{ temp=a; a=b; b=temp; } printf(“a,b的值为:%.2f,%.2f”,a,b); }
if (leap)
printf("%d 是闰年.\n",year);
else
printf("%d 不是闰年.\n",year);
}
利用逻辑运算能描述复杂条件的特点,可将上述程序优化如下:
#include <stdio.h> main( ) {
int year; printf("请输入年份:"); scanf("%d",&year); if ((year%4==0 && year%100!=0)||(year%400==0))
例如, if (num1>num2) max=num1; else max=num2; 语句: if行后面的赋值语句“max=num1;”分号不能省略。但不要误认为if和else是2个独立的语句,它们都属于if语句中的一部 分,else是if语句的子句。
例7: 输入任意三个整数a、b、c,求三个数中的最大值
if语句
明平象
一、if语句格式
if语句的一般格式
if(表达式) {语句组1;}
[else {语句组2;} ]
二、if语句常用格式一
if(表达式) {语句组1;}
例1:如果x>3,那么y=ห้องสมุดไป่ตู้;
if(x>3) y=5; //分两行
if(x>3) y=5; //一行
例2:如果x>3,那么y=5,z=6;
例8: 输入一个年份和月份,输出该月的天数,用if语句实现 。
方法一:
例8: 输入一个年份和月份,输出该月的天数,用if语句实现 。
方法二:
三、if语句常用格式二
if(表达式) {语句组1;}
else {语句组2;}
例4:输入学生成绩,判定学生是否及格。
#include <stdio.h> main( ) {
float score; printf(“请输入学生成绩:\n”); scanf(“%f”,&score); if(score>=60)
printf("%d 是闰年.\n",year); else
printf("%d 不是闰年.\n",year); }
说明:
1)if后面的“表达式”,除常见的关系表达式或逻辑表达式外,也允许是其它类型的数据,如整型、实 型、字符型等。
2)if语句允许嵌套,但嵌套的层数不宜太多。在实际编程时,应适当控制嵌套层数(2~3层)。 3)“语句组1”和“语句组2”,可以只包含一个简单语句,也可以是复合语句。 务必牢记:不管是简单语句,还是复合语句中的各个语句,每个语句后面的分号必不可少!
#include <stdio.h> main( ) {
int a,b,c,max; printf("请输入3个整数:\n"); scanf("%d%d%d",&a,&b,&c); if (a>b)
max=a; else
max=b; if (c>max)
max=c; printf("这3个整数是:%d,%d,%d\n",a,b,c); printf("max=%d\n",max); }
printf(“该学生成绩及格!\n”); else
printf(“该学生成绩不及格!\n”); }
注意
1)if语句中的“表达式”必须用“(”和“)”括起来。 2)else子句(可选)是if语句的一部分,必须与if配对使用,不能单 独使用。 3)当if和else下面的语句组,仅由一条语句构成时,也可不使用复 合语句形式(即去掉花括号)
四、if语句常用格式三(if语句的嵌套)
if(条件) { …… if(条件) {一组语句; } else {一组语句;} …… }
else { …… if(条件) {一组语句;} else {一组语句;} …… }
四、if语句常用格式三(if语句的嵌套)
if语句允许嵌套。所谓if语句的嵌套是指,在“语句组1”或(和 )“语句组2”中,又包含有if语句的情况。
y=1; else
if(x==0) y=0;
else y=-1;
printf(“y=%.0f”,y); }
x0 x0 x0
例6:写一程序,从键盘上输入1年份year(4位十进制数),判断其是否闰 年。闰年的条件是:能被4整除、但不能被100整除,或者能被400整除。
#include <stdio.h>
main( )
{
int year,leap=0;
/* leap=0:预置为非闰年*/
printf("请输入年份:");
scanf("%d",&year);
if (year % 4==0)
{if (year % 100 != 0) leap=1;}
else
{if (year%400==0) leap=1; }
if语句嵌套时,else子句与if的匹配原则:与在它上面、距它最近 、且尚未匹配的if配对。
为明确匹配关系,避免匹配错误,强烈建议:将内嵌的if语句,一 律用花括号括起来。
1
例5:输入x的值,求
y
0
1
#include <stdio.h> main( ) {
float x,y; printf(“请输入x:\n”); scanf(“%f”,&x); if(x>0)
if(x>3)
y=5;
z=6; //错误,因为if语句只能管到后一条语句,到分
号结束,这种情况应使用{}
if(x>3) { y=5; z=6;}
//{}把两个语句作为一个整体,由if来控制。
例3:如果a>b,把a与b进行交换
算法分析: 1.输入a,b的值; 2.执行a>b; 3.如果a>b,把a与b交换; 4.输出a,b;