为什么这个do while循环取false后是无限的?

Why this do while loop is infinite after it take false?


输入除1,2,3,4以外的值后会无限循环。为什么会这样?


#include<stdio.h>

int main(void)
{
    int person, vote1=0, vote2=0,vote3=0,vote4=0;

    do{

        printf("Select person to be voted!\n");
        printf("Chanaka     - Press 1\n");
        printf("Prasanna    - Press 2\n");
        printf("Tharindu    - Press 3\n");
        printf("Sandaruwan  - Press 4\n");
        printf("\n");
        printf("Quite       - Press Q\n");
        printf("\n");
        printf("\n");

        printf("Enter Number:");
        scanf("%d",&person);

        switch(person)
        {
            case 1: vote1++; break;
            case 2: vote2++; break;
            case 3: vote3++; break;
            case 4: vote4++; break;
        }
    }while(person == 1 || person== 2 || person ==3 ||person==4 );


    printf("\n");
    printf("\n");

    printf("Chanaka     - %d Votes\n", vote1);
    printf("prasanna    - %d Votes\n", vote2);
    printf("Tharindu    - %d Votes\n", vote3);
    printf("Sandaruwan  - %d Votes\n", vote4);

}

根据可用信息,您的代码似乎按预期工作。如果你放一个 5 循环结束。如果你放一个 Q 循环也会结束。输入 1、2、3 或 4 只是添加投票并继续循环,据我所知,这就是您希望代码执行的操作。

您的问题中是否缺少某些内容?如果是这样,请将其添加到您的 post.