鱼C论坛

 找回密码
 立即注册
查看: 769|回复: 2

[已解决]循环语句中if break,if break else ,if break else break区别

[复制链接]
匿名鱼油
匿名鱼油  发表于 2021-12-22 22:00:26 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
案例代码
#include<iostream>
using namespace std;
#include<string>
#define MAX 1000
struct Person
{
        string m_Name;
        int  m_Sex;
        int m_Age;
        string m_Phone;
        string m_Addr;


};
struct Addressbooks
{
        struct Person personArray[MAX];
        int m_Size;

};
void showMenu()
{

        cout << "******1.添加联系人******" << endl;
        cout << "******2.显示联系人******" << endl;
        cout << "******3.删除联系人******" << endl;
        cout << "******4.查找联系人******" << endl;
        cout << "******5.修改联系人******" << endl;
        cout << "******6.清空联系人******" << endl;
        cout << "******0.退出通讯录******" << endl;


}
void addPerson(struct Addressbooks* abs)
{
        if (abs->m_Size == MAX)
        {
                cout << "通讯录已满,无法再输入" << endl;
                system("pause");
                system("cls");


        }
        else
        {
                cout << "请输入姓名" << endl;
                string name;
                cin >> name;
                abs->personArray[abs->m_Size].m_Name = name;

                cout << "请输入性别" << endl;
                cout << "1----男" << endl;
                cout << "2----女" << endl;
                int sex = 0;
               
                while (true)
                {
                        cin >> sex;
                        if (sex == 1 || sex == 2)
                        {
                                abs->personArray[abs->m_Size].m_Sex = sex;
                                break;
                               


                        }
                        else
                        {
                                cout << "您输入的有误,请重新输入" << endl;
                                break;
                        }


                }
                int age = 0;
                cout << "请输入年龄" << endl;
                while (true)
                {
                        if (age < 100 && age >= 0)
                        {
                                abs->personArray[abs->m_Size].m_Age = age;
                               
                        }
                        else
                        {
                                cout << "您输入的有误,请重新输入" << endl;
                               
                        }


                }
               


                }
               




}

int main()
{
        int select = 0;
        struct Addressbooks abs;
        abs.m_Size = 0;

        while (true)
        {
                showMenu();
                cin >> select;
                switch (select)
                {
                case 1:
                        addPerson(&abs);
                        break;
                case 2:
                        break;
                case 3:
                        break;
                case 4:
                        break;
                case 5:
                        break;
                case 6:
                        break;
                case 0:
                        cout << "欢迎下次使用" << endl;
                        system("pause");
                        return 0;
                        break;
                default:
                        break;



                }


        }



        system("pause");
        return 0;

}


其中如果我在if 和else 下加了break,效果运行有些不解,和
while (true)
                {
                        cin >> sex;
                        if (sex == 1 || sex == 2)
                        {
                                abs->personArray[abs->m_Size].m_Sex = sex;
                                break;
                        }
                        cout << "输入有误,请重新输入" << endl;
                }
               
                cout << "请输入年龄" << endl;
                int age = 0;
                while (true)
                {
                        cin >> age;
                        if (age <= 100 && age > 0)
                        {
                                abs->personArray[abs->m_Size].m_Age = age;
                                break;

                        }
                        cout << "输入有误,请重新输入" << endl;
                       
                }
中的循环语句if中加break有什么区别呢

最佳答案
2021-12-22 22:31:03
本帖最后由 jackz007 于 2021-12-22 22:34 编辑

       break 只与 for 、while 、switch ... case 三种结构语句有密切关系,而与 if 语句没有任何关系,没有必要把他们放在一起讨论。
       break 语句的作用是跳出上述三种语句块,然后,从语句块之后的第一条语句开始继续执行。
回复

使用道具 举报

发表于 2021-12-22 22:31:03 | 显示全部楼层    本楼为最佳答案   
本帖最后由 jackz007 于 2021-12-22 22:34 编辑

       break 只与 for 、while 、switch ... case 三种结构语句有密切关系,而与 if 语句没有任何关系,没有必要把他们放在一起讨论。
       break 语句的作用是跳出上述三种语句块,然后,从语句块之后的第一条语句开始继续执行。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-12-23 10:32:28 From FishC Mobile | 显示全部楼层
我非常好奇,能够写出这样的代码,表示不是第一次写代码,为什么会问这个问题呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-6-27 02:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表