注册 登录
编程论坛 C语言论坛

程序的方向赋值设置了条件,为什么赋值上后还是能赋值为下,求解答

小白报道 发布于 2020-01-20 11:21, 2017 次点击
#include<stdio.h>
#include<conio.h>
char tou;
enum FX
{
    up = 72, down = 80, left = 75, right = 77
};
void changfx_()
{
    char key;
    if ((key = _getch()) < 0)
    {
        key = _getch();
    }
    switch (key)
    {
    case up:
        if (key != down)
            tou = up;
        break;
    case down:
        if (key != up)
            tou = down;
        break;
    case right:
        if (key != left)
            tou = right;
        break;
    case left:
        if (key != right)
            tou = left;
        break;
    }

}
int main()
{
    while (1)
    {
        changfx_();
        printf("方向为=%d\n", tou);
    }
}
5 回复
#2
rjsp2020-01-20 12:14
为什么赋值上后还是能赋值为下
听不懂呀,你直接说 你输入什么、输出什么、期待输出什么。
#3
rjsp2020-01-20 12:22
猜猜吧,你需要将 if (key != ……) 之类的都改为 if (tou != ……)
#4
小白报道2020-01-20 12:45
回复 2楼 rjsp
输入一个上之后,tou=up(上),然后输入down(下)条件语句不能为down,头依然为up
#5
小白报道2020-01-20 12:46
回复 3楼 rjsp
。。。  原来条件设置的问题在这里  感谢感谢
#6
叶纤2020-01-20 23:17
//看不懂啊用我自己的理解做了一遍,可能有很多不对(自从发现兔斯基沉迷无法自拔),错了一定要指出来啊
#include<stdio.h>
#include<conio.h>
//我想定义一个枚举类型,并测试枚举类型的数据
//枚举类型里有up down left right  其实枚举里的就是常量
//要想测试类型里的数据我选择用switch用while写循环懒得一步一步的测试了
//为了防止死循环使用了getch().感觉没必要啊
enum FX
{
    up=72, down =80, left=75, right =77
};//这个枚举和c++有区别,cpp里不能往enum里定义常量像up=72是违规的
int main()
{   printf("请按任意键继续");
    while(1) {
        char key;
        key=_getch();//
        char tou;
        scanf("%d",&key);
        switch (key)
        {
        case up:
            tou = up;printf("方向为up=%d\n",tou); break;
        case down:
            tou = down;printf("方向为down=%d\n", tou); break;
        case right:
            tou = right; printf("方向为right=%d\n", tou);  break;
        case left:
            tou = left; printf("方向为left=%d\n", tou);break;
        }
    }return 0;
}
1