For loop not 运行 under a void - fight scenario

For loop not running under a void - fight scenario

我是 C++ 的新手,我在分配时遇到了一些问题。到目前为止,这是我的程序:

#include "stdafx.h"

#include <iostream>
#include <string>
using namespace std;

void fight(string heroName, int arrowCount, int enemyCount);
int main(int argc, char** argv) {

    string heroName = "Legolas";
    int arrowCount = 3;
    int enemyCount = 3;

    cout << "Welcome to the Arena, the battle will begin shortly." << endl;
    system("pause");
    cout << "\nToday's competitors: " << "\n" << heroName << "\n" << "3 Orcs" << endl;

    system("pause");

    cout << "\n" << heroName << " will be given 3 arrows" << "\n" << "3 Orcs will be given daggers. \n";

    system("pause");

    cout << "\nThe battle begins in...\n 3...\n  2...\n   1..." << endl;

    system("pause");

    fight(heroName, arrowCount, enemyCount);
}

void fight(string heroName, int arrowCount, int enemyCount) {

    for (int x = arrowCount; x <= 0; x--) {

        if (arrowCount == 3) {
            cout << "\n" << heroName << " fires arrow at Azog." << "\nAzog has fallen due to lobotomy by arrow." << "\nLegolas notices he has 2 arrows remaining." << endl;
            system("pause");
        }

        if (arrowCount == 2) {
            cout << "\n" << heroName << " fires arrow at Dular." << "\nDular has taken an arrow to the knee and is now longer an adventurer." << "\nLegolas notices he has 1 arrow remaining." << endl;
            system("pause");
        }

        if (arrowCount == 1) {
            cout << "\n" << heroName << " fires arrow at Nagrub." << "\nNagrub has lost his testicles." << "\nLegolas notices he is out of Arrows." << endl;
            system("pause");
        }
    }
}

我遇到的问题是 for 循环似乎没有初始化。直到程序的 "void fight" 部分,一切都运行良好。我该如何纠正?

您是说 for (int x = arrowCount; x >= 0; x--) { 吗?请注意,for 循环条件检查是在 之前评估的 循环体是 运行.

目前,如果 x 为正,您的循环将终止,从您的变量名称来看,最有可能是这种情况。

另请注意,for 循环的主体既不依赖于 x,也不依赖于 enemyCount,这看起来很奇怪。