鱼C论坛

 找回密码
 立即注册
查看: 749|回复: 1

for 语句判断条件问题

[复制链接]
匿名鱼油
匿名鱼油  发表于 2021-12-23 02:39:36 |阅读模式

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

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

x
#include<iostream>
using namespace std;
#include<string>
int const 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;
                               

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

                }
                int age = 0;
                cout << "请输入年龄" << endl;
                while (true)
                {
                        cin >> age;
                        if (age < 100 && age >0)
                        {
                                abs->personArray[abs->m_Size].m_Age = age;
                                break;
                        }

                        cout << "您输入的有误,请重新输入" << endl;


                }
               
                string phone;
                cout << "请输入联系电话" << endl;
                cin >> phone;
                abs->personArray[abs->m_Size].m_Phone = phone;

                string address;
                cout << "请输入家庭住址" << endl;
                cin >> address;
                abs->personArray[abs->m_Size].m_Addr = address;
                abs->m_Size++;
                cout << "您输入成功" << endl;
                system("pause");
                system("cls");
               




                }
               




}
void showPerson(Addressbooks *abs)
{
        if (abs->m_Size==0)
        {
                cout << "当前记录人数为空" << endl;
                system("pause");
                system("cls");
        }
        else
        {
                for (int i = 0; i < abs->m_Size; i++)
                {
                        cout << "姓名:" << abs->personArray[i].m_Name << " \t";
                        cout << "性别:" << (abs->personArray[i].m_Sex==1?"男":"女") << " \t";
                        cout << "年龄:" << abs->personArray[i].m_Age << " \t";
                        cout << "电话" << abs->personArray[i].m_Phone<< " \t";
                        cout << "住址:" << abs->personArray[i].m_Addr<< " \t";
                       

                }
                system("pause");
                system("cls");

        }


}
int isExist(Addressbooks *abs,string name)
{
        for (int i = 0; i < abs->m_Size; i++)
        {
                if (abs->personArray[i].m_Name == name)
                {
                        return  i;
                }
        }
        return -1;

}


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:
                        showPerson(&abs);
                        break;
                case 3:
                {
                        cout << "请输入删除联系人姓名" << endl;
                        string name;
                        cin >> name;
                        if (isExist(&abs, name) == -1)
                        {
                                cout << "查无此人" << endl;
                        }
                        else
                        {
                                cout << "找到此人" << endl;
                        }
                }
                        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;

}
其中在执行函数isExist中for条件语句判断(int i = 0; i < abs->m_Size; i++)在判断m_size下标为0的情况下为何能使i<0还能运行,还是我理解有错,有些不解

回复

使用道具 举报

发表于 2021-12-23 19:49:07 | 显示全部楼层
条件是i < abs->m_Size;只要abs->m_Size>=0;i值是小于0的数,i < abs->m_Size;都为真
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-21 20:09

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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