【C++】while循环中break放置问题

各位求解答,(C++初学者)
while循环中,break要放到哪个{ }里 如图
看的视频里教的是放到30行的else{ }里,我试了下放到32行else{ }外就不行,但它也在while循环的{ }里呀(如图)

求解答(手机拍有屏纹,我尽力了(。ì _ í。) )

img

break放在外面要表达的意思是不管你猜对还是猜大猜小,只要我第一次执行完毕if else语句就中止循环,这个是猜一次就中止循环。

而放在else的那个括号里面,则只有满足那个else条件时才会执行break语句中止while循环,这个是猜对了才中止循环,如果没猜对一直循环。

根据你这个小程序的意思,他是想要你在猜对了以后才中止循环,而不是猜了一次之后就中止循环,所以你应该放在else那个大括号里。

放在第30行,猜对了之后才break跳出循环,否则还要继续猜下去的
你放在32行,等于while循环白写了,猜一次就break结束了

break是跳出循环,
放到32行不行?报错了?


#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;
 

int main(){
    srand((unsigned int)time(NULL));
    
    int num = rand() % 100 + 1;
    int val = 0;
    
    while(1){
        cout << "请输入您要猜的数字:";
        cin >> val;
        
        if (val > num){
            cout <<"猜大了"<<endl;
        }
        else if (val < num){
            cout<<"猜小了"<<endl;
        }
        else {
            cout<<"猜对了!"<<endl;
            break;
        }
    }
}

看到你这个问题,你对 break 或 while 循环不时很熟悉

while 循环是干嘛的?是条件符合的情况下,再执行一次循环体
break 是干嘛的?是循环体中经过一定的逻辑后,你想要退出循环
ok。。。回归你这代码。。。
你的目的是什么?是猜对之后退出while 循环?
还是?不管猜对没有直接跳出?
ok。。。我相信你会了


可以看下c语言参考手册中的 c语言-break