这是我的代码
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输入怎么能解决这个问题?
答案 0 :(得分:1)
这应该适合你:
首先,您的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;
}
答案 1 :(得分:0)
while(komut==!'e'||komut==!'E');
是不正确的部分。您应该使用!=
来表示不平等。
使用==!
使其成为komut == (!'e')
,这意味着komut is equal to not 'e'
,即komut == 0
。