2013-07-06 212 views
-6

如果我的代碼Python的冗餘

i = 0 
while i < N: 
    print("Hello") 
    i += 1 

多少次將您好被打印出來? (假設N是定義的整數)

數目:

  1. Ñ
  2. N-1
  3. N + 1
  4. 大於N + 1

爲什麼?我從來沒有得到這個,所以我會很感激有人能解釋。

+0

它會被打印N次。我從0開始。如果我不小於N,你的條件要求循環退出。但是因爲你的索引從0開始,它將被正好打印N次。嘗試用變量i替換「Hello」。我認爲這會讓事情看得更清楚。 –

+0

你是否試圖從理解while循環開始呢? – user4815162342

+0

這很容易嘗試:http://ideone.com/N6SU1N –

回答

2

你好會打印出N次。 假設N是3

第一迭代 i = 0 i小於N

print hello 
i = i + 1; // i = 1 

第二迭代 i = 1;` is less than N(3)`

print hello 
i = i + 1; // i = 2 

第三迭代 i = 2; i小於N (3)

print hello 
i = i + 1; // i = 3 

第四迭代 i = 3; i等於N (3) 中斷循環

+0

這對我有意義,你的例子會如何與N + 1? –

+0

它不會,因爲N + 1不是答案... – JcKelley

+2

N + 1(給出上面的例子)將是N = 4,所以它會打印出你好4次 –

5

解決這個問題的最好方法是手工處理N的一些可管理值。舉例來說,如果N爲2:

  • i == 00 < 2→打印"hello",增加i
  • i == 11 < 2→打印"hello",增加i
  • i == 2 2 < 2 while -loop條件是不更長的滿意→循環結束

因此對於N = 2"hello"被打印2次。看到模式?

2

至於其他的答案中描述,這將打印N倍,因爲它從0開始,進入到它只是在N之前,不等於N.

實際上,這在Python中是非常多餘的。更簡單的方法來做到這一點,使得它多一點可讀性(希望您更容易理解):

N=3 
for x in range(0,N): 
    print "This is loop %d" % (x) 

這個循環將從0 to N,這真的只是N倍的打印量。