c - If 语句不断循环 - c

标签 c function loops if-statement

<分区>

所以我试图完成这个程序,我需要做的就是为这个纸牌游戏实现某种形式的用户输入,但到目前为止,我尝试过的一切都只是无休止地循环(或者直到我用完元素数组)并且我不知道我在逻辑上做错了什么,当我查看我的代码时,它似乎是有道理的。

void players(int deck[])
{
    int x;
    int a; 

    a = 1;

     printf("Player 1 \n"); 
     printf("Your Hand is: \n"); 
     draw(deck, a);
     draw(deck, a);
     while(a = 1)
     {
     printf("What would you like to do: Press 1 to Draw. 2 to Stay. \n"); 
     scanf("%d" , &x); 
     if(x = 1)
     {
          draw(deck, a);
     }
     else
     {
         a--;
     }
     }
}

这是有问题的输入

void draw(int deck[SIZE], int a)
{
    int numCards = 10;
    int i; 
    int hand[numCards];
    int card;
    for(i = 0; i < numCards && top > 0; i++)
    {
        card = deck[top-1];     
        hand[i] = card; 
        top--;   
    }
    if(a != 0)
    printcards(card);
    else
    for(i = 0; i < numCards && top > 0; i++)
    printcards(card);

}

这是 Loop 用来抽牌的函数(printcards 是一个单独的函数,只打印卡片)玩家调用 draw 并且它可以工作,但如上所述它会无休止地调用卡片,即使我按下 2(假设退出)。所以我不完全确定我做错了什么。

最佳答案

while(a = 1)

1 赋值给 a 将导致它永远循环。您应该使用 == 来进行比较。请打开编译器警告并修复它们,因为它们很容易发现这种情况。

顺便说一句,你的 if(x = 1) 语句也有同样的错误...

关于c - If 语句不断循环 - c,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16246248/

相关文章:

c - doxygen 无法在 c 中生成 extern api

C - 访问链表内部的链表

java - 需要帮助保存和继续用户输入

Java for 循环变成负数?

python - 在 Python 3 中检测类(不是实例)中的绑定(bind)方法

Python Noob - 愚蠢的问题?在 Python 解释器中工作,而不是在 CLI 中工作

c - 使用 alloc 的堆栈转储

c - 使用变量按名称搜索枚举?

c++ - 我可以创建类内函数类型吗?

javascript - javascript 中的奇怪示例,为什么我无法通过函数的参数重新分配全局变量的值?