我有一個關於變量裏面在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;'做。 –