2012-03-16 64 views
0
while (x >= 1000) 
{ 
    cout << "M"; 
    x -= 1000; 
} 

有人可以向我解释while循环的工作原理吗?我知道条件是x大于或等于1000,它会打印出'M'。需要了解while循环条件(请参阅评论)

之后的部分是我实际上不明白的,是不是说它会继续从X中减去一千个并继续打印直到条件为假?

+0

欢迎来到Stack Overflow!请记住,赞赏是由upvotes和接受的答案(复选标记)显示的。如果您有任何疑问,[常见问题]是一个很好的资源,尤其是如何提问的章节[常见问题解答#HowToAsk] – 2012-03-16 06:11:54

+0

当您得到答案时,Upvote好的并接受最好的!欢迎来到SO – 2012-03-16 07:56:20

回答

2

是的,这正是它会做的。

这大致翻译成:

虽然x大于或等于1000,做什么是在码块(反复直到条件失败)

代码块然后打印M和集合X等于本身减去1000(x -= 1000相同x = x - 1000

假设:

x = 3000 
x is greater than 1000 
print M 
x is set to 2000 
loop resets and checks x...passes test 
print M 
x is set to 1000 
loop resets and checks x...passes test because of = portion 
print M 
x is set to 0 
loop resets and checks x...fails 
moves to the code after the while code block 
0

你是对的!

x-=1000; 

实际上是

x=x-1000; 
0

是。

它说,它将保持减去一千个从X和保留打印,直到条件为假

0

程序似乎是写

x %= 1000; 

这是一种低效的方式x = x%1000,其中%是模数运算符。

您的代码通过后续减法达到相同的结果,并在x<1000时停止。

+0

虽然你的代码不会生成'M's。 – fredoverflow 2012-03-16 08:57:13

+0

@FredOverflow唉,你是对的。 :)错过了。 – 2012-03-16 08:59:19

1
while (x >= 1000) //x is greater than or equal to 1000 
{     //executes loop if condition true, else the statement after the loop block 
    cout << "M"; // print M 
    x -= 1000; // x = x-1000 
}     //goes back to condition checking