int num = rand() % 100 + 1;
cout << num << endl;
int val = 0;
int a = 0; //1 这是个很简单的猜字游戏,我不明白这个次数限制,就是理解不了 int = 0; while (1&&a<6){a++.............}
while (1&&a<6) //2 这个是抄的弹幕123,正常是 int val = 0; while(1){cin>>val; if............就是没有次数限制可以理解
{ //3 加了while(1&&a<6){a++;..... 就没搞懂这个表达式怎么理解
a++;//3
cin >> val;
if (val > num)
{
cout << "数字过大" << endl;
}
else if (val < num)
{
cout << "数字过小" << endl;
}
else
{
cout << "正确!!" << endl; break;
}
}
由于while()中必须要有一个值,当要无限循环时就要设置1表示循环条件永远为真,
当有另外的循环条件时,1&&a<6,是永远为真的1 与 a<6 两者都为真才继续循环。
这样关键就看a<6的比较,永远为真的1已经不需要了,可以直接写成 while (a<6)
int a = 0;
while (a<6)
{
a++;//3
cin >> val;
if (val > num)
.........
}
等同for循环
for (int a=1; a<=6; a++)
{
cin >> val;
if (val > num)
.........
}
C语言里面非0就是真true,0就是假,理解这个你就明白了。1就是永远为真,等于没有这个条件。
while(1)就是死循环的意思。
while (1&&a<6) 这个可以简化为 while(a < 6), 就是 a 从 0 到 5, 做六次循环。
就是有次数限制了,只能猜6次
1&&a<6可以写成a<6,因为1与上另一个值,结果取决于另一个值,另一个值是真,结果就是真,另一个值是假,结果就是假。
如果是
while(a<6)
{
a++;
....
}
这样可以理解吗?
它类似
for(i=0;i<6;i++)
{
....
}
不过for里面是i++是最后进行的,写成while就是
i=0;
while(i<6)
{
....
i++;
}
您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632
非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!
速戳参与调研>>>https://t.csdnimg.cn/Kf0y