3.1 选择/分支结构————if语句

目录

1.if语句

1.1 if

exe1:输入一个整数,判断是否为奇数。

1.2 else

exe2:输入一个整数,判断是否为奇数,如果是奇数打印奇数,否则打印偶数。

exe3:练习题:输入一个年龄,>=18岁就输出成年,否则就输出未成年。

1.3 分支语句中包含多条语句

exe4:输入一个年龄,>=18岁:输出多少岁成年和多少岁可以开车,否则就输出:多少岁未成年和多少岁不可以开车。

1.4 if嵌套

exe5:输入一个整数,判断输入的整数是0,还是正数或者负数。

exe6:(嵌套在if下)输入一个整数,如果是正数,判断是奇数还是偶数,输出结果。若不是正数输出:非正数。

exe7:(嵌套在else下)输入一个人的年龄,如果年龄<18岁,打印"少年";如果年龄18-44岁,打印"青年";如果年龄45-59岁,打印"中老年";如果年龄60-89岁,打印"老年";如果年龄在90岁以上,打印"寿星"。

1.5悬空的else问题

exe8:else总是跟最接近的if匹配


C语言:结构化的程序设计语言,结构指:顺序结构选择结构(if 、switch)、循环结构(for、while、do while)。

1.if语句

1.1 if

if语句的语法形式:

if ( 表达式 )

       语句

表达式成立(真-非0),执行语句,表达式不成立(假-0),不执行语句。

例如1:

exe1:输入一个整数,判断是否为奇数。
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
	int num;//先有一个整型变量
	printf("输入一个整数:");
	scanf("%d", &num);//scanf() 处理用户的输入
	//判断并输出
	if (num % 2 == 1) {
		printf("%d是奇数\n", num);
	}        //余数为1、3、5、7、9是奇数
	return 0;
}

执行流程图:

1.2 else

if…else…语句的语法形式:

if( 表达式 )

     语句1;

else

     语句2;

exe2:输入一个整数,判断是否为奇数,如果是奇数打印奇数,否则打印偶数。
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
	int num;//先有一个整型变量
	printf("输入一个整数:");
	scanf("%d", &num);//scanf() 处理用户的输入
	//判断并输出
	if (num % 2 == 1) {
		printf("%d是奇数\n", num);
	}
	else {
		printf("%d是偶数\n", num);
	}
	return 0;
}

运行结果图:

exe3:练习题:输入一个年龄,>=18岁就输出成年,否则就输出未成年。
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
	int age = 0;
	printf("输入年龄:", age);
	scanf("%d", &age);
	if (age >= 18) 
		printf("成年\n");
	
	else 
		printf("未成年\n");
	
	return 0;
}

运行结果图:


1.3 分支语句中包含多条语句

注意:默认情况下,if和else的后边只能跟一条语句。若要跟多条语句,可以使用{ }

if else多条语句的语法形式:

if( 表达式 ){

     语句1;

     语句2;

}

else{

     语句3;

     语句4;

}

exe4:输入一个年龄,>=18岁:输出多少岁成年和多少岁可以开车,否则就输出:多少岁未成年和多少岁不可以开车。
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
	int age = 0;
	printf("输入年龄:", age);
	scanf("%d", &age);
	if (age >= 18) {
		printf("%d岁成年\n",age);
		printf("%d岁可以开车\n", age);
	}
	else {
		printf("%d岁未成年\n", age);
		printf("%d岁不可以开车\n", age);
	}
	return 0;
}

运行结果图:

1.4 if嵌套

if else语句中,else可以与另一个if语句连用,构成多重判断。

if( 表达式 )

     语句1;

else if 

     语句2;

else

exe5:输入一个整数,判断输入的整数是0,还是正数或者负数
​
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
	int num = 0;
	printf("输入一个整数:", num);
	scanf("%d", &num);
	if (num == 0) {
		printf("输入的整数是0\n", num);
	}
	else if (num > 0)
	{
		printf("输入的%d是正数\n", num);
	}
	else {
		printf("输入的%d是负数\n", num);
	}
	return 0;
}

​

运行结果图:

exe6:(嵌套在if下)输入一个整数,如果是正数,判断是奇数还是偶数,输出结果。若不是正数输出:非正数。
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
	int num = 0;
	printf("输入一个整数:",num);
	scanf("%d", &num);
	if (num > 0)
	{
		if (num % 2 == 1)
			printf("输入的整数%d是奇数", num);
		else
			printf("输入的整数%d是偶数", num);
	}
	else
		printf("输入的整数%d是非正数", num);
	return 0;
}

运行结果:

同理,也可以嵌套在else下。

exe7:(嵌套在else下)输入一个人的年龄,如果年龄<18岁,打印"少年";如果年龄18-44岁,打印"青年";如果年龄45-59岁,打印"中老年";如果年龄60-89岁,打印"老年";如果年龄在90岁以上,打印"寿星"。
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
	int age = 0;
	printf("输入一个年龄:", age);
	scanf("%d", &age);
	if (age < 18)
		printf("%d是少年\n", age);
	else {
		if (age <= 44)
			printf("%d是青年\n", age);
		else {
			if(age<=59)
			printf("%d是中老年\n", age);
			else {
				if(age>=89)
					printf("%d是老年\n", age);
				else 
					printf("%d是寿星\n", age);
			}
		}
			
	}
	return 0;
}

代码运行结果:

1.5悬空的else问题

如果有多个if和else,注意:else总是跟最接近的if匹配。

exe8:else总是跟最接近的if匹配
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
	int a = 0;
	int b = 2;
	if (a == 1)
		if (b == 2)
			printf("nihao\n");
		else
			printf("heihei\n");
	return 0;
}

else总是跟最接近的if匹配。解析:if(a==1)判断a,a不等于1,所以无法进入下一个if else语句中,所以无法输出结果。

若想输出heihei,可以在第一个if下加入{ }。

因为if下加入{ },所以else总是跟最接近的if匹配的规则不遵循,判断a,a不等于1。进行else语句,输出heihei。

  • 10
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值