我无法弄清楚如何引用循环外的变量(C ++)

时间:2015-04-29 23:56:42

标签: c++

基本上我的问题是我在循环外创建了一个变量(字符串),我想在循环中使用它。以下是尝试更好地解释的示例代码:

myage

这只是我试图更好地解释它的一个简单示例,所以我的问题是:我有什么方法可以在此循环中使用currentyeargetInt()变量?如果是,怎么样?

不要犹豫,询问您是否需要更多信息或特定数据。

4 个答案:

答案 0 :(得分:6)

循环永远不会执行

for(int i=0; i>98; i++){

因为i>98false

答案 1 :(得分:0)

如果你问我认为你在想什么,绝对是。 for循环几乎是一种方便的语法,为您提供了一个指定初始条件,中断条件和执行每次迭代的命令的位置。据我所知,您可以根据需要使用尽可能多的这些,例如

#include <iostream>
int main(){
    int myage = 0;
    for(; myage<10; myage++)
        std::cout << myage << std::endl;
}

将打印出0到9的数字。

答案 2 :(得分:0)

由于已经回答了这个问题,您可以使用+ =运算符来改进和缩短代码,如下所示:  auto

或者: myage += 1;

而不是myage++;

答案 3 :(得分:0)

了解范围很重要。循环和函数创建一个范围,他们总是可以在更高的范围内访问事物;但是,无法从较小的范围访问事物。对象在其范围的整个持续时间内都存在,并且该范围内的任何内容都可以访问它们。

// Global scope:
int g = 0; // everything in this file can access this variable

class SomeClass
{
    // Class scope
    int c = 0;
    void ClassFunction()
    {
        // ClassFunction scope
        // Here we can access anything at global scope as well as anything within this class's scope:
        int f = 0;

        std::cout << g << std::endl; // fine, can access global scope
        std::cout << c << std::endl; // fine, can access class scope
        std::cout << f << std::endl; // fine, can access local scope
    }
    // Outside of ClassFunction, we can no longer access the variable f
};

void NonClassFunction()
{
    // NonClassFunction scope
    // We can access the global scope, but not class scope
    std::cout << g << std::endl;

    int n1 = 0;
    for (...)
    {
        // New scope
        // Here we can still access g and n1
        n1 = g;
        int x = 0;
    }
    // We can no longer access x, as the scope of x no longer exists

    if (...)
    {
        // New scope
        int x = 0; // fine, x has not been declared at this scope
        {
            // New scope
            x = 1;
            g = 1;
            n1 = 1;
            int n2 = 0;
        }
        // n2 no longer exists
        int n2 = 3; // fine, we are creating a new variable called n2
    }
}

希望这有助于向您解释范围。考虑到所有这些新信息,答案是肯定的:您可以在for循环中访问变量,因为这些变量的范围仍然存在于内部范围内。