JackII 发表于 2020-5-6 21:51:02

两个if(getch())只执行后一个

我想要实现一个功能,(x,y) 在按下←键时x减小1,在按下→时x增大1,以下是程序,但发现控制台只执行第二个if,第一个if好像被放弃了?

JackII 发表于 2020-5-6 21:51:38

#include <stdio.h>
#include <conio.h>
int main(void){
    int num,x,y;
    x = 0;
    y = 0;
    while(1)
    {
      if((num=getch())== 75){
                x = x - (num - 74);
                system("cls");
              printf("(%d,%d)\n",x,y);
              }
              if((num=getch())== 77){
                x = x + (num - 76);
                system("cls");
              printf("(%d,%d)\n",x,y);
              }

    }
    return 0;
}

JackII 发表于 2020-5-6 21:54:22

明明两个if单独作用都可以的,但放到一起为什么前面的那个就报废了呢=- = 大佬们救救孩子把

superbe 发表于 2020-5-6 23:02:21

#include <stdio.h>
#include <conio.h>

int main(void) {
    int num, x, y;
    x = 0;
    y = 0;
   
    while (1)
    {
      num = getch();
      if (num == 75) {
            x = x - 1;
            system("cls");
            printf("(%d,%d)\n", x, y);
      }else if (num == 77) {
            x = x + 1;
            system("cls");
            printf("(%d,%d)\n", x, y);
      }
    }
    return 0;
}

Neverturnback 发表于 2020-5-7 05:59:43

输入和输出发出来,如果有BUG截下图,光看你的描述,不知道你的问题嗷。

JackII 发表于 2020-5-9 10:11:19

Neverturnback 发表于 2020-5-7 05:59
输入和输出发出来,如果有BUG截下图,光看你的描述,不知道你的问题嗷。

简单地说就是按下←键x不会减小1,花了些时间弄清楚了,问题描述不清,下次会注意的{:10_257:}

JackII 发表于 2020-5-9 10:11:50

superbe 发表于 2020-5-6 23:02


明白了谢谢大佬
页: [1]
查看完整版本: 两个if(getch())只执行后一个