C语言种IF语句的应用疑问

来源:百度知道 编辑:UC知道 时间:2024/06/08 10:34:27
今天上课的时候老师说当第1个IF X<0 下面的else if的条件都要小于X<0的,比如 IF(X<0)是第一个条件,那么第2个就要else if(X<=-10)第3个就要else if(X<=-20)我现在就犯迷糊了啊,那如果来个大于0的这个程序不就无法运行了?还有我不管输入-几程序都是按照X<0的那个运行的吧?

那如果是我听课听错了,那下面这题的算法是不是最后写的那样?

XXXX (X<=0)
当Y={XXXX (X<-10)
XXXX (X>0)

if(x<=-0)
y=XXXX;
printf();
else if(x<=0)
y=xxxx;
printf();
else if(x>0)
y=xxxx;
printf();

那应该是这样子吧?求解啊求解

- -||
谁跟你说的1个if X<0 ,下面的else if的条件都要小于X<0的。
这绝对是错的。。
如果X<0 的话,程序就直接执行if(X<0)这个条件下的代码了,跟本就下不去执行else的语句。
if(X<0 )
{所有满足X<0 执行这里;}
如果你接着写了
else if(X<=-10)
{有上面的X<=0的条件,根本就不会执行这里的;}

所以else if语句应该和上面的条件相反,即X>=0的条件才行。(所以你说反了)

举个例子说
if(X<=0)
{满足小于0的执行;}
else if(X<=10)
{能执行这里的条件是 0<X<=10 的}

明白没,你的第一个X<0已经包括了X<-10了,所以再写else if(X<-10),根本没有意义。

是,找到第一个匹配的就停了。

你的程序没有花括号,是错的。
在使用if-else if-else一定要注意作用域和if-else的配对问题,也就是某个else或else if到底是跟着哪个if的。做到这点一个是做好缩进排版,一个是严格使用花括号。

世上本无事

从小到大判断
if(x<-10)
{
y=XXXX;
printf();
}
else if(-10<=x<0)
{
y=xxxx;
printf();

}
else if(x>0)
{
y=xxxx;
printf();
}

if,else不难啊,很简单的东西吗.

你就记住一点。ELSE都是对上一个IF的否定。
例如 ifX>0 那再用ELSE的话条件只能是<=0 情况下。