sususususu 发表于 2022-10-24 22:43:55

萌新求教,else if无效问题

#include<stdio.h>
int main(void)
{
    int x,y;
    printf("请输入整数x:");
    scanf("%d", &x);
    if(x>=10)
    {
      y=2*x+9;
      printf("y=%d\n",y);
    }
    else if(x>0&x<10)
    {
      y=x+1;
      printf("y=%d\n",y);
    }
    else if(x=0)
    {
      y=0;
      printf("y=%d\n",y);
    }
    else if(x<0)
    {
      y=2*x-9;
      printf("y=%d\n",y);
    }
}



为什么后两个else if 没有结果,似乎只有第一个else if起效,后两个被忽略了,可否解释一下



jackz007 发表于 2022-10-24 22:47:32

本帖最后由 jackz007 于 2022-10-24 22:58 编辑

    else if(x>0 && x<10)// 有错
    {
      y=x+1;
      printf("y=%d\n",y);
    }
    else if(x==0)         // 有错,会修改 x 的值
      上面是已经改正过的代码

sususususu 发表于 2022-10-24 23:03:20

我修改了第二个错误之后,发现不用修改第一个错误程序也能进行,请问&和&&有什么区别吗

sususususu 发表于 2022-10-24 23:03:59

我修改了第二个错误之后,发现不用修改第一个错误程序也能进行,请问&和&&有什么区别吗

sususususu 发表于 2022-10-24 23:05:43

jackz007 发表于 2022-10-24 22:47
上面是已经改正过的代码

我知道,我是说第一个错误那里我仍然只使用一个&而不是两个&,程序也能进行,请问&和&&有什么区别吗

jackz007 发表于 2022-10-24 23:17:28

sususususu 发表于 2022-10-24 23:05
我知道,我是说第一个错误那里我仍然只使用一个&而不是两个&,程序也能进行,请问&和&&有什么区别吗

      是的, & 是二进制位操作符 and,而 && 是逻辑操作符 and ,二者的操作结果和意义存在着差别。
页: [1]
查看完整版本: 萌新求教,else if无效问题