如何用switch语句写分段函数呢?⭐️
首先介绍一下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<stdio.h> //引用头文件
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;
}
创作不易, 如果这份博客👍对你有帮助,可以给博主一个免费的点赞以示鼓励。
欢迎各位帅哥美女点赞👍评论⭐️收藏⭐️,谢谢!!!
如果有什么疑问或不同的见解,欢迎在评论区留言哦👀。
祝各位生活愉快⭐️