gpt4 book ai didi

c - 两个 If 语句同时执行,而不是一个

转载 作者:行者123 更新时间:2023-11-30 15:24:21 25 4
gpt4 key购买 nike

我有一个程序,它从 char 数组获取输入,使用 strtok 函数检查输入是否包含单词“up”或“down”。如果它包含单词“up”,则我的 b 值设置为 false(即 b = 0),并且我的 c 值也设置为 false。如果 char 数组包含单词“down”,则 b 设置为 false,但我的 c 值设置为 true(即 c= 1)。

当字符串中包含单词“up”时,就会出现问题,因为第一个 if 语句执行,并在屏幕上打印结果字符,但不知何故第二个 if 也执行打印这些字符。任何有关此事的意见将不胜感激

编辑:如果我使用“down”一词,两个 if 语句都会被执行,则会出现同样的问题。

int moveC(int y, int x, int b, int i, int c) {
// int c is a static variable(static int c = FALSE;) defined in the previous function
int j;
int k;

switch (b) //assume b is always false (which it is)
{
case FALSE:
if (c == 0) {
mvprintw(y, x, "^");
refresh();

for (j = 1; j <= i; j++) {
mvprintw(y + j, x, ".");
refresh();
}
break;
}

if (c == 1) //tried using else if, same result
{

mvprintw(y, x, "^");
refresh();

for (j = 1; j <= i; j++) {
mvprintw(y - j, x, ".");
refresh();
}
break;
}
}
return 0;
}

最佳答案

您的代码很可能执行两次。赠品是你尝试了 if/else。在 if 语句的一次执行中,永远只会执行一个 block 。

关于c - 两个 If 语句同时执行,而不是一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28446237/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com