C语言--分段函数--switch语句


 如何用switch语句写分段函数呢?⭐️

C语言--分段函数--switch语句_第1张图片

首先介绍一下switch语句的语法规则⭐️

switch(整形表达式)
{
	case 常量表达式1; //标签必须唯一
		语句块1;
			break;
  case 常量表达式2;  //if(a==0),而case中时系统自动加==
		语句块2;
			break;

	case 常量表达式3;
		语句块3;
			break;
	default  其他情况(默认)可以省略
		语句块n+1;
			break;
}
  •  从哪里进?

        当整型表达式和其中的一个标签(常量表达式相同,则进入),如果都不是则进入default
         如果没有default ,则不进入switch

  •  从哪里出?

        遇到break 则结束。

由于switch当中必须是整形表达式,而分段函数中的x和y都有可能是小数,怎么办呢?

设置一个flag标签。

flag = (x < 1)?1:(x >= 1&&x<10)?2:3;//如果为真则为1,如果为假则为0

 这句话是什么意思呢?

介绍一下三目运算符  

表达式1?表达式2:表达式3   如果表达式1为真则执行2,若表达式1为假则执行表达式3

若x<1,则返回1,否则返回到(x>=1&&x<10)

若x>=1&&x<10,返回到2,否则返回3

即:

  • 当x<1,返回1
  • 当 1<=x<10,返回2
  • 当x>10,返回3

 完整代码:

#define _CRT_SECURE_NO_WARNINGS
#include  //引用头文件
int main()
{
	double x; //自变量
	double y;//因变量
	int flag;//标记
	printf("请输入x的值: ");
	scanf("%lf", &x);
	flag = (x < 1)?1:(x >= 1&&x<10)?2:3;//如果为真则为1,如果为假则为0
	//若x<1,则返回1,否则返回到(x>=1&&x<10)
	//若x>=1&&x<10,返回到2,否则返回3
	switch (flag)  //switch中的内容只能是整形表达式
	{
		case 1: //满足x<1
			y = x;
			printf("%lf", y);
			break;
		case 2://满足
			y = 2 * x - 1;
			printf("%lf", y);
			break;
		case 3:
			y = 3 * x - 11;
			printf("%lf", y);
			break;
	}

	return 0;
}

创作不易, 如果这份博客对你有帮助,可以给博主一个免费的点赞以示鼓励。

欢迎各位帅哥美女点赞评论⭐️收藏⭐️,谢谢!!!

如果有什么疑问或不同的见解,欢迎在评论区留言哦。

祝各位生活愉快⭐️

你可能感兴趣的:(C语言学习,c语言)