我有一个关于变量里面在C++的循环范围的问题。 我有一个变量j如下条件环路C++的古怪行为
int j;
for (int i=0; i<8; i++){
if ((betaSol(i,0) >= -HalfPi) && (betaSol(i,0) <= HalfPi)){
// j gives size of new vector where beta is within bounds
j++;
}
}
Eigen::MatrixXd vectorname(j,1);
在代码中看出,计算在一定条件现在我想使用相同的法官在接下来的for循环的条件如下
for (int ii = 0; ii<j; ii++){
vectorname(ii,0) = functionname(alphaSol_filt(ii,0),betaSol_filt(ii,0));
}
这里是问题发生的地方。 这将成为无限循环和ii熄灭界。奇怪的是,当我用以下代替第二个循环:
for (int ii = 0; ii<j; ii++){
std::cout << j <<std::endl;
}
它确实工作正常。但是,如果我改变什么,那么它变成一个无限循环,我不知道会发生什么
欢迎堆栈溢出。请尽快阅读[关于]页面。你还没有初始化'j',所以你得到了不确定的值来处理。 –
谢谢你的回复。但是我使用的是我在第一行初始化的j值。另外如果我输出第一个for循环外的j值,我会得到正确的值。 –
'int j;'不初始化'j'。 'int j = 0;'做。 –