这是我的代码

int main()
{
  char komut,komut2;
  do{
    scanf("%c",&komut);
    switch(komut){
    case 's':
    case 'S':
      kare();
    case 'r':
    case 'R':
      dikdortgen();
    case 't':
    case 'T':
      scanf("%c",&komut2);
      if(komut2=='u' || komut2=='U')
        ust_ucgen();
      if(komut2=='d' || komut2=='D')
        alt_ucgen();
    }
  }while(komut==!'e'||komut==!'E');

  return 0;
}


问题是程序只为1个输入运行ı希望它运行直到给出e或E输入,我该如何解决呢?

最佳答案

这应该为您工作:

首先,您的case语句必须以break;结尾!

然后,还必须将==!更改为!=,并在do...while循环中将条件从||更改为&&

#include <stdio.h>

int main() {

    char komut, komut2;

    do{
        scanf(" %c", &komut);

        switch(komut){
            case 's':
            case 'S':
                kare();
                 break;
            case 'r':
            case 'R':
                dikdortgen();
                break;
            case 't':
            case 'T':
                scanf(" %c", &komut2);

                if(komut2 == 'u' || komut2 == 'U')
                    ust_ucgen();
                if(komut2 == 'd' || komut2 == 'D')
                    alt_ucgen();
                break;
        }
    } while (komut != 'e' && komut != 'E');

    return 0;

}

关于c - 为什么它不停留在循环中,在c中执行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26705826/

10-12 05:26