如何用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,否则返回3switch (flag) //switch中的内容只能是整形表达式{case 1: //满足x<1y = 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;
}
创作不易, 如果这份博客👍对你有帮助,可以给博主一个免费的点赞以示鼓励。
欢迎各位帅哥美女点赞👍评论⭐️收藏⭐️,谢谢!!!
如果有什么疑问或不同的见解,欢迎在评论区留言哦👀。
祝各位生活愉快⭐️