2017-02-14 161 views
-4

我需要幫助使用「for循環」超過2個值這是一起去。這是我的代碼:在for循環中使用多個值?

for(x=1 , y=1 ; x<6 , y<10 ; x++ , y++){ 
    cout << "x:" << x << endl; 
    cout << "y:" << y << endl; 

現在,當我運行它... x和y上升到9 但我希望他們能一起運行,但我想X停止在6輸出,我想ÿ繼續9 ..但我不知道該怎麼做,或者甚至有可能這樣做..在此先感謝!

+0

你的意思是,不是使用'if'條件打印出來之前檢查x'的'價值等? –

+2

@Pavlin Edrev當x等於6且y小於10時,你會在循環體中做什麼? –

+0

@VladfromMoscow我只是想改變自己的values..by顯示每個號碼已變更......如果這給意義嗎 –

回答

2

我不使用c++所以有人糾正我,如果我的語法是錯誤的,但作爲一種廣譜程序員我想像的解決方案將是這個樣子:

for (x=1, y=1; x<6 || y<10;) { 
    if (x<6) { 
     cout << "x:" << x << endl; 
     ++x; 
    } 
    if (y<10) { 
     cout << "y:" << y << endl; 
     ++y; 
    } 
} 

也有辦法爲了達到這種效果,不用離開使用三元運算符的for循環的核心,但爲了簡單起見,我在這裏排除了這一點。

+2

不應有條件爲'x <6 || ÿ<10'?按照現狀,這將停止在6 – vu1p3n0x

+2

while-conditional應該是'y <10'並且'if(y <10)'是obselete。 – user2176127

+0

感謝編輯@ user2176127我下線:) –

-7

最簡單的,對於這個問題的一個自然的解釋,是一個嵌套的循環:

for(int y = 1; y < 10; ++y) 
{ 
    for(int x = 1; x < 6; ++x) 
    { 
     cout << "x:" << x << endl; 
     cout << "y:" << y << endl; 
    } 
} 

相反,如果你真的想兩個值稱爲xy這始終是相同的,並且你想要做一個爲x < 6和別的東西y < 10的東西,那麼一個循環計數器就足夠了:

for(int i = 1; i < 10; ++i) 
{ 
    int const y = i; 
    if(i < 6) 
    { 
     int const x = i; 
     // Do the x and y thing here. E.g. 
     cout << "x: " << x << endl; 
    } 
    // Do the y only thing here. E.g. 
    cout << "y: " << y << endl; 
} 

如果你的意思是別的東西,那麼你需要澄清你的問題,例如以期望的輸出爲例。

0

TEST.CPP:

#include <iostream> 
int main() { 
    for(int i = 1; i < 6; ++i) { 
     std::cout << "x: " << i << std::endl; 
     std::cout << "y: " << i << std::endl; 
    } 
    for(int i = 6; i < 10; ++i) { 
     std::cout << "y: " << i << std::endl; 
    } 
} 

輸出:

x: 1 
y: 1 
x: 2 
y: 2 
x: 3 
y: 3 
x: 4 
y: 4 
x: 5 
y: 5 
y: 6 
y: 7 
y: 8 
y: 9 
+0

我想循環的每次迭代通常會花費更少的時間,如果它檢查1而不是2條件。但我不確定編譯器如何優化代碼。畢竟這可能不重要。 –

+0

這確實幫了我!非常感謝:)(我是一個初學者,所以我不在乎優化代碼。 –