2017-02-14 114 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

这确实帮了我!非常感谢:)(我是一个初学者,所以我不在乎优化代码。 –