2012-05-07 3 views
-22

Будет ли этот цикл выполнять точно N Times?Для контуров Loop

for (int i = 0; i < N; i++) 
{ 
    //statement 
    someMethodCall(); 
} 

Будет ли этот цикл выполнить самое N раз?

for (int i = 1; i < N; i++) 
{ 
    someMethodCall(); 
} 

Будет ли этот цикл исполнять как минимум N раз?

for (int i = 0; i <= N; i++) 
{ 
    //statement 
    someMethodCall(); 
} 

Что мне делать, если мне нужно выполнить оператор между m и n раз, например вызов метода?

+2

Это C# или C++? – talnicolas

+2

Что такое «по крайней мере» или «самое большее»?Цикл for предназначен для прохождения определенного количества раз в этом формате. «Разрыв» внутри цикла выйдет раньше, а его форматирование по-разному повлияет на итерации (например, через контейнер). – chris

+0

Да, да, да. –

ответ

2

Ответы на ваши три вопроса: да, нет, и да, я полагаю, хотя этот третий ответ немного обманчив; он будет выполнять N раз, не больше и не меньше (если только не существует исключения, которое прерывает цикл ненормально.) Вы можете написать цикл for для цикла определенное количество раз или до тех пор, пока какое-то условие не станет истинным, а затем у вас есть способность использовать break или return, чтобы закончить цикл раньше.

Но нет понятия выполнения «по крайней мере N раз»; это просто не часть этого - или любого другого - компьютерного языка.

+0

Ну, нет сомнений в том, сколько раз цикл будет выполняться, но я думаю, что все три утверждения верны, если вы игнорируете ужасное использование «по крайней мере» и «самое большее». –

+0

@SethCarnegie - средний будет выполнять N-1 раз, поэтому, «самое большее N», безусловно, неправильно, не так ли? –

+0

На самом деле это единственное, что можно применить, если вы посмотрите на возможности «ломать», но да, это было бы более точно, как «самое большее, N-1», чем «самое большее, N» – chris

0

Формула петли может быть вычислена как

Math.Round (condition - initialization)/increment 

В первом случае его

(N-0)/1 which evaluates to N times 

Во втором случае его

(N-1)/1 which evaluates to N-1 times 

В третьем случае его

(N-0+1)/1 which evaluates to N+1 times 

How would I do if I need to execute statement between m and n times? For instance I want to call one method between m and n times?

затем проверить его в состоянии

for (int i = m; i < n; i++) 
{ 
    someMethodCall(); 
} 
0

в системе для петли вы можете иметь этот код,

N Время

for (int i = 0; i < N; i++) { 

} 

N + 1 Время

for (int i = 0; i <= N; i++) { 

} 

И если не в любое время, и вы хотите справиться с этим Вашим самим вы можете использовать это,

for (;;) { 
    //do something and don't forget use break or return !   
} 

ИЛИ

while(x>10){  

} 

и петля в петле хорошо, как сказал Эрнест Фридман-Хилл

for (int i = 0; i <=10; i++) { 
    for (int i = 0; i < length; i++) { 

    } 
} 

использование 2xTab для визуальной справки студии.

Смежные вопросы