所以我知道代码的输出是8 2,但有人可以告诉我如何的价值 我和j在每一步之后都会改变。
以下是代码的链接:
using namespace std;
int main()
{
int i; int j = 0;
for ( i = 0; i < 7; i++)
{
if(i % 2 == 1)
{
i = i + 2; j++;
}
else
{
j = j + 2;
}
j--;
}
cout << i <<" "<< j;
}
答案 0 :(得分:4)
将是
int i; int j = 0; // i==? j==0
----------------------------------------------
for ( i = 0; // i==0 j==0
i < 7; // TRUE
if(i % 2 == 1) // FALSE
j = j + 2; // i==0 j==2
j--; // i==0 j==1
i++) // i==1 j==1
----------------------------------------------
i < 7; // TRUE
if(i % 2 == 1) // TRUE
i = i + 2; j++; // i==3 j==2
j--; // i==3 j==1
i++) // i==4 j==1
----------------------------------------------
i < 7; // TRUE
if(i % 2 == 1) // FALSE
j = j + 2; // i==4 j==3
j--; // i==4 j==2
i++) // i==5 j==2
----------------------------------------------
i < 7; // TRUE
if(i % 2 == 1) // TRUE
i = i + 2; j++; // i==7 j==3
j--; // i==7 j==2
i++) // i==8 j==2
----------------------------------------------
i < 7; // FALSE
答案 1 :(得分:-1)
从j++
移除if-true
,在j=j+2
中将j++
更改为if-false
,以便在{{1}之后j--
,简化您的代码应该删除。而且理解代码变得更容易。
if_else
说明:
int main()
{
int i; int j = 0;
for ( i = 0; i < 7; i++)
{
if(i % 2 == 1)
{
i = i + 2;//add 2 in i for odd i
}
else
{
j++; //add 1 in j for even i
}
}
cout << i <<" "<< j;
}
i=0,j=0
Since, i=0 (even)
j=1 (even so j++)
i=1 (i++ for-loop)
i=3 (odd so add 2)
i=4 (i++ for-loop)
j=1 (unchanged)
i=4 (even)
j=2 (even so j++)
i=5 (i++ for-loop)
i=7 (odd so add 2)
j=2 (unchanged)
i=8 (i++ for-loop)
i=8 (i<7 for-loop exit)
&amp; i=2
强>