这样如何才能跳出while循环,要求重新输入数值呢

#include<iostream>#include<string>#include<cmath>#include<cstdio>#include<cstdlib>#in... #include <iostream>
#include <string>
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <ctime>
#include <process.h>

using namespace std;
int main()
{
int t,l;
int answer[4];
srand(time(0));
for(t=0;t<=3;t++)
{
answer[t]=rand()%10+1;
for (l=0;l<t;l++)
{
while (answer[t]==answer[l])
{
answer[t]=rand()%10;
}
}
}
int a,b,z,x,c,v,q;
int times=0;
cout <<"请输入猜测数值"<<".\n";
while (a!=4)
{ a=0;
b=0;
z=0;
x=0;
c=0;
v=0;
q=0;
times++;
cin >> q;
cout<<times<<"次.\n";
while (q==0)
{
cout <<"尼玛,猜数字你输个毛线的字母符号啊!八嘎!重新输入.\n";
times++;
cin >> q;
cout<<times<<"次.\n";
}
z=int (q/1000);
x=int ((q/100)-(z*10));
c=int ((q/10)-(z*100)-(x*10));
v=int (q-(z*1000)-(x*100)-(c*10));
if(z==answer[0]) a=a+1;
else if(z==answer[1] ||z==answer[2]||z==answer[3]) b=b+1;
if(x==answer[1]) a=a+1;
else if(x==answer[0] ||x==answer[2]||x==answer[3]) b=b+1;
if(c==answer[2]) a=a+1;
else if(c==answer[0] ||c==answer[1]||c==answer[3]) b=b+1;
if(v==answer[3]) a=a+1;
else if(v==answer[0] ||v==answer[1]||v==answer[2]) b=b+1;
cout <<a<<"A"<<b<<"B.\n";
}
cout <<"恭喜您答对了";
return 0;
}

初学者,做着玩,想在当别人输入字母时候,要求重新输入,而不是死循环,也不想设置exit 直接退出,应该怎么设置while 语句,或者有什么其他办法呢 谢谢
展开
 我来答
人渣29
2014-03-11 · 超过28用户采纳过TA的回答
知道答主
回答量:89
采纳率:0%
帮助的人:66.1万
展开全部
那你可以使用if判轮桥断是否是数字,如果确认输入的不是数字,那么执腊备猛行
continue;
这个语句代表不执行while内的剩余语句,继续循环滚橘
追问
if 语句的话,只执行一次吧? 我改成这个样子了
while (!cin)
{
cout > q;
cout<<times<<"次.\n";
}
追答

我不是很明白你说的情况啊

举个例子

int a = 0;
while(a < 10){ 
    if(a == 5)
        continue;
    printf("a = %d", a);
    a++;
}

//这样子的循环应该能够明白吧,就是a从0开始一直输出到9,其中如果发现a是5的情况,那么就跳过了printf和a++这两句
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式