鱼C论坛

 找回密码
 立即注册
查看: 7649|回复: 10

为什么if判断不成立还执行里面的语句!!!!

[复制链接]
发表于 2014-11-26 21:43:08 | 显示全部楼层 |阅读模式
5鱼币
#include<stdio.h>

void main()
{
        char a;
        printf("ê&#228;è&#235;£o");
        scanf("%c",&a); //假如我输入a这个字符a = 97 的。
       
                if(87 <= a <= 90 )  //这里居然判断是对的并且执行了米面的语句a = a - 22.
                {
                        a = a-22;
                }
                else if(119 <= a <= 122)//这里也判断正确。执行语句
                {
                        a = a-22;
                }
                else if(65 <= a <= 86)//这里还是正确,执行语句
                {
                        a = a+4;
                }
                else if(97 <= a <= 118) // 本来该只执行这个语句的;
                {
                        a = a+4;
                }

                printf("%c",a);
}
这是怎么回事,我哪里编错了,朋友们帮帮我吧

最佳答案

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-11-26 21:43:09 | 显示全部楼层

因为87 <= a <= 90  这个语句是先执行a<=90这个,然后以它的结果1或者0再与87进行<=运算的,后面的也一样,解决办法就是用&&运算符
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-11-26 23:36:20 | 显示全部楼层
本帖最后由 小时光 于 2014-11-26 23:41 编辑

你的判断条件改为a >=87 && a<=90呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-11-27 09:26:51 | 显示全部楼层
呵呵! 这种情况的话,如果实在看不出来的话,就单步调试吧!一步一步走,就知道是什么问题了!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-11-27 11:32:30 | 显示全部楼层
"87 <= a <= 90",C语言里好像不能这么判断吧,改为"87 <= a && a <= 90",其它一样改
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-11-27 12:44:03 | 显示全部楼层
1. <= 运算符的结合性是从左到右,   (87 <= a <= 90) 等价于:((87 <= a) <= 90)   
你输入的是a:97
(87  <= a ) 运算的结果是1 (true)
然后:
(1 <= 90 ) 运算的结果也是1 (true)


所以就执行第一个分支了。


1.png




想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-11-27 16:19:21 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-11-28 01:24:42 From FishC Mobile | 显示全部楼层
小写a要变成小写e就对咯!我是输入的字母都加4
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-11-28 01:28:32 From FishC Mobile | 显示全部楼层
为什么我用87〈=a&&a<=90中间用&&判断还是每个都执行呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-11-29 01:39:15 | 显示全部楼层

不运算符好意思,<=运算符是从左向右的,之前的说错了,,尴尬
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-11-30 01:45:06 | 显示全部楼层
转转,拿鱼币
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-25 09:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表