C语言关于switch和case的小问题
C语言关于switch和case的小问题 本帖最后由 昨非 于 2021-2-7 20:55 编辑switch后跟常量表达式,这种分段函数用if-else更好些吧
因为分段函数的分支判断条件是x大于、小于或等于0,
也就是意味着swich后面必须把这三种情况用常量表达式表示
显然很麻烦(可能还要单独用语句来区分)
不如直接用if来区分x的三种情况,在分支下直接对f(x)赋值 同问,不是谁更好,而是能否使用switch!? 不能吧 最后一个是变量 不可以的 本帖最后由 jackz007 于 2021-2-7 21:32 编辑
switch . . . case 选择语句只能适合变量的值为有限多个确定值的情况,楼主描述的变量 x 显然不适合直接套用,但是,可以通过适当改造,在不破坏函数值的前提下,对 x 进行适当的改造,以适应使用 switch . . . case 语句来表达函数值。
int foo(int x)
{
int r ;
if(x > 0) x = 1 ;
else if(x < 0) x = -1 ;
switch(x) {
case -1:
case0: r = x ; break ;
case1: r = 2 * x ; break ;
}
return r ;
}
case 对应的是某种确定的情况,现在 x < 0、x = 0,x > 0 是三种范围,你若一定要用,可以这样(有点脱裤子那个啥哈)
int y;
if (x < 0)
y = 1;
else if (x == 0)
y = 2;
else
y = 3;
switch(y);
case 1: f(x) = -1;break;
case 2: f(x) = 0;break;
case 3: f(x) = 2x; 非常感谢大伙们的回复{:10_297:} 风过无痕1989 发表于 2021-2-7 21:37
case 对应的是某种确定的情况,现在 x < 0、x = 0,x > 0 是三种范围,你若一定要用,可以这样(有点脱裤子 ...
今天评分次数满了 明天给你评 cjh1 发表于 2021-2-8 13:47
今天评分次数满了 明天给你评
谢谢!鱼币我倒是不在乎,若能给几个贡献(因为得到它很难,我也欠朋友23个贡献),就谢谢你了 风过无痕1989 发表于 2021-2-9 16:51
谢谢!鱼币我倒是不在乎,若能给几个贡献(因为得到它很难,我也欠朋友23个贡献),就谢谢你了
谢谢!
页:
[1]