声明:我写这一系列文章在讲述过程中可能用了一些大白话,也可能有的地方墨迹了一些,但旨在把一些没有基础但很想学软件开发的一些人领进门来,另外该文章我同时也在百度经验发表。
一个if语句里可以嵌入一个或多个if语句,当你需要书写嵌套if语句的时候,建议你采取缩进的形式,并且标明大括号,这样代码清晰容易阅读,类似下面的格式
if(条件1)
{
if(条件2)
{
}
else
{
}
}
下面我写一个嵌套的例子你可以分析一下
main()
{
int a;//表示成绩
printf("请输入成绩:");
scanf("%d",&a);
if(a<0||a>100)
{
printf("请输入合法成绩");
}
else
{
if(a>60)
{
printf("及格\n");
}
else
{
printf("不及格\n");
}
}
}
第二个if嵌入进了第一个if语句的else内,如果第一个if的条件成立了,那第二个if不会得到执行的机会。
上面的例子还可以这样写
main()
{
int a;//表示成绩
printf("请输入成绩:");
scanf("%d",&a);
if(a>=0&&a<=100)
{
if(a>60)
{
printf("及格\n");
}
else
{
printf("不及格\n");
}
}
else
{
printf("请输入合法成绩");
}
}
第二个if嵌入进了第一个if语句内,如果第一个if的条件成立了,那第二个if才会得到执行的机会。
你把一个if语句嵌入到另一个if语句的if或者else或者else if的大括号内都是可以的。
下面我出一个练习题,你可以试着编写一下。
我们假定会员卡的密码是256,现在要求用户从键盘输入一个整数密码,如果密码正确输出欢迎访问,用户可以有三次输入机会,如果三次都输入错误了那输出您的卡已被锁定请至服务台解锁。
下面是我写的嵌套if语句实现的代码:
main()
{
int a;//表示密码
printf("请输入一个整数的会员卡密码:");
scanf("%d",&a);
if(a==256)
{
printf("欢迎访问!\n");
}
else
{
printf("密码输入错误,还有2次机会,请再次输入密码:");
scanf("%d",&a);
if(a==256)
{
printf("欢迎访问!\n");
}
else
{
printf("密码输入错误,还有1次机会,请再次输入密码:");
scanf("%d",&a);
if(a==256)
{
printf("欢迎访问!\n");
}
else
{
printf("密码错误次数超限你的卡号已被锁定,请至服务台解锁!\n");
}
}
}
}
上面的写法代码虽然有点多,但是电脑执行起来不会有多余的判断步骤,另外逻辑思维也比较清晰,便于阅读。
请看下面的这种实现方式:
main()
{
int a;//表示密码
printf("请输入一个整数的会员卡密码:");
scanf("%d",&a);
if(a!=256)
{
printf("密码错误,你还有2次机会,请再次输入密码:");
scanf("%d",&a);
}
if(a!=256)
{
printf("密码错误,你还有1次机会,请再次输入密码:");
scanf("%d",&a);
}
if(a!=256)
{
printf("密码错误次数超限请至服务台解锁。\n");
}
else
{
printf("欢迎访问!");
}
}
上面的代码也能实现题目要求,你可以运行下试试,而且书写起来代码量小了,但电脑判断的次数却增多了,逻辑思维也比较跳跃不太容易阅读。