2016-10-15 3 views
1

Я новичок в языке программирования C#, и я смущен вопросом. У меня есть цикл for, который увеличивается два раза по одному за один цикл, но в каждом цикле он увеличивается один раз.Confusion with for loop in C# язык программирования

В чем причина опускания i++?

string inValue; 
for (int i = 0; i < 10; i++) 
{ 
    Console.Write("Enter Score{0}: ", i + 1); 
    inValue = Console.ReadLine();     
} 

ответ

3

Оператор ++ приращения увеличивает значение только одним

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

Для того, чтобы увеличить в два раза:

for (int i = 0; i < 10; i+=2) 
{ 
    Console.Write("Enter Score{0}: ", i);     
} 

Подробнее: Increment (++) and Decrement (--) Operators

|  If  | Equivalent Action | Return value   | 
| variable++ |  variable += 1  | value of variable before | 
|    |      |  incrementing   | 

В следующей строке:

Console.Write("Enter Score{0}: ", i + 1); 

увеличивает значение i на плюс 1 но не хранится в i. Это как письмо:

int b = i+1; // i is not affected. New value never stored back into i 
Console.Write("Enter Score{0}: ", b); 

Любой из следующих способов будет увеличиваться значение по 2:

//Option 1 
for (int i = 0; i < 10; i +=2) 

//Option2 
Console.Write("Enter Score{0}: ", i++); 

//Option3 
i = i+1; 
Console.Write("Enter Score{0}: ", i); 
+0

сначала начинается добавление одного в Console.WriteLine (я + 1); поэтому почему он не увеличивается внутри for (i ++), он увеличивается так. – jawed

+0

@jawed - Помогло ли вам решить эту проблему? –

0

(я ++) увеличивает I на 1, это как письмо: я = я + 1. (i + 1) не возрастает.

+0

, когда я запускаю этот код, он отобразится следующим образом: Введите оценку 1: Введите счет 2: Введите счет 3: так почему он увеличивается только один раз? – jawed

+0

спасибо, я понял. – jawed

+0

На самом деле, я не первый ваш ответ, это был ответ для меня, извините за это. – jawed

2

i++ означает, что вы просто увеличиваете i на 1 или просто можете просто написать код следующим образом: i = i + 1. Так что если вы хотите, цикл с увеличением i + 2, вы можете записать такой код:

for(int i = 0; i < 10; i += 2) 
{ 
    Console.Write("Enter Score{0}: ", i); 
    inValue = Console.ReadLine(); 
} 

Петля увеличится i на 2.