基本上我的问题是我在循环外创建了一个变量(字符串),我想在循环中使用它。以下是尝试更好地解释的示例代码:
myage
这只是我试图更好地解释它的一个简单示例,所以我的问题是:我有什么方法可以在此循环中使用currentyear
或getInt()
变量?如果是,怎么样?
不要犹豫,询问您是否需要更多信息或特定数据。
答案 0 :(得分:6)
循环永远不会执行
for(int i=0; i>98; i++){
因为i>98
是false
答案 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循环中访问变量,因为这些变量的范围仍然存在于内部范围内。