簡體   English   中英

即使退出條件滿足並進入,錯誤消息仍會打印

[英]Error message still printing even though exit condition met and entered

我遇到了一個相當大的問題,試圖弄清楚為什么這些代碼段即使在應該返回true或不打印該錯誤消息的塊中執行了cout語句,也為什么會打印錯誤消息。 有任何想法嗎? 我是新來的,所以如果不允許這樣做,請告訴我。 謝謝!

使用功能:

case 'a':
        {
            // Format: a ID credits GPA
            // Adds a student with the given student ID (ID), number of 
            // credits (credits), and overall GPA (GPA) to the database. 
            // If the student is already in the database, an error 
            // message should be printed indicating this.

            int credits = 0;
            double gpa = 0;
            cin >> studentID;
            cin >> credits;  
            cin >> gpa;

            // Adds the student and checks to see if the student was actually added
            // or if there was an existing student with the specified ID

            bool added = addStudent(studentID, credits, gpa);
            if(added == false);
            {
                cout << "Student already exists in database, nothing changed." << endl;
                // Still prints this when executed with valid 
            }
            break;
        }

用於將學生添加到數組的函數:

bool addStudent (int id, int numCredits, double gpa) {

// Check to see if student exists

if (nextEntry != 0)
{
    for (int x = 0; x < 7000; x++) {
        Student tmp = studentRecords[x];
        if (tmp.studentId == id)
        {
            return false;
            cout << "hey" << endl;
        }
    }
}

// If student does not exist, add to records database
if (nextEntry != 7000)
{
    studentRecords[nextEntry].studentId = id;
    studentRecords[nextEntry].numCredits = numCredits;
    studentRecords[nextEntry].gpa = gpa;
    nextEntry++;
    return true;
    // confirmed I can get here
}

return false;
}

你有一個額外的; if (added==false)語句之后。 這將終止if語句,之后的代碼將運行,無論是否進行檢查。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM