-2

こんにちは、while ループを実行しようとしています。プログラミングやオンラインでの読み取りは初めてです。本当に理解できません。フラグを使用して、入力された名前がデータ ファイル内の名前と一致することを示しました。一致しないことがわかった後、もう一度全体をループしますが、これを実装する方法がわかりません。

{

    clrscr();
    cout << "This Is The Option To Delete A Record\n";
    char yesno;
    char search;
    char name[21];
    int flag = 0;
    cout << "Enter Employee Name : ";

    Input(name,20);

    for (int r=0;r<row;r++)
    {

    if( strnicmp(name, emp[r].first_name, strlen(name) ) == 0 )
        {

            flag = 1;
            clrscr();
            cout << "Employee Number - " << emp[r].employee_number << endl;
            cout << "Name - " << emp[r].first_name << " " << emp[r].surname << endl;
            cout << "Department Number - " << emp[r].department_number << endl;
            cout << "Week Ending Date - " << emp[r].weekend << endl;


            cout << "Delete This Record (Y/N)? : ";
            Input(yesno);
            yesno = tolower(yesno);

            if ( yesno == 'y' )
            {
                emp[r].deleted = true;
                cout << "Record Has Been Deleted";
            }
            else if ( yesno == 'n') 
            {
                cout << "Record Hasn't Been Deleted";
            }
        }

    }

    if (flag == 0)
    {
    cout << "There Are No Matching Records" << endl;
    }
    pressKey();
}
4

4 に答える 4

0

ループを理解していれば、との比較からループを簡単にfor理解できると思います。whileforwhile

ほら、forループを使用しました:

for (int r=0;r<row;r++){
   // do stuff
}

ここで重要なポイントが 3 つあります。

  1. int r=0これが最初の状態です。
  2. r<rowこれは、ループを実行し続ける条件です。
  3. r++これは、ループの各反復の最後に起こることです。

上記のステートメントを言い換えると、次のようになります。

rは最初は 0 に等しいと見なしますが、はr未満ですがrow、インクリメントしますr

whileこれで、ループがどのように印象的であるかを簡単に確認できます:) これを実装するには、次のwhileループの例を検討してください。

int r=0;        //(1)
while(r<row){   //(2)
    //do stuff
    r++;        //(3)
} 

ほら、2 つのループが実質的に同じことをするようになりました。

フラグに基づいて操作を行いたい場合は、無限ループを優先することもできます。

while(1==1){
    if(some condition)
        break;
}

for無限ループと同様に:

for(;;){
    if(if some condition)
        break;
}

繰り返しますが、2 つのループは実質的に同じです。

于 2013-05-06T14:55:38.607 に答える