为什么这个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.
输入除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.