2017-02-23 29 views
0

сегодня у меня проблема, которая подталкивает меня к стене. Я начинающий программист, в настоящее время изучающий основы C#, после изучения Java.Переменная индексации переменных? Цикл в C#, Visual Studio 2015

Сегодня я работал на примере практики, когда я столкнулся с этой проблемой:

Code Running

Это скриншот моего кода работает, и я оставил заявление для печати внутри цикла, чтобы показать мне что делает моя индексная переменная. Как вы можете видеть, он увеличивается более одного раза за каждое выполнение цикла. Я также получил те же результаты при использовании цикла while и других проектов.

Вот код:

class Program 
{ 
    static void Main(string[] args) 
    { 
     Console.WriteLine("How many values are you entering"); 
     int value = Convert.ToInt32(Console.Read()); 

     Console.WriteLine("Please enter the values of the currencies you are converting."); 
     decimal[] money = new decimal[value]; 

     for (int i = 0; i < money.Length; i++) 
     { 
      money[i] = Convert.ToDecimal(Console.Read()); 
      Console.WriteLine("i is: "+i); 
     } 

    } 
} 

Я не могу приступить к этому заданию, пока я не могу понять, что является причиной этой проблемы. Благодаря!

+0

В скриншоте, значения идут от 0 до 4 приращения на 1. В чем проблема? Разве это не то, чего вы пытаетесь достичь? –

ответ

1

попробовать ReadLine() вместо Read() как

Console.WriteLine("How many values are you entering"); 
    string input = Console.ReadLine(); 
    int value = Convert.ToInt32(input); 

    Console.WriteLine(value +" Please enter the values of the currencies you are converting."); 
    decimal[] money = new decimal[value]; 

    for (int i = 0; i < money.Length; i++) 
    { 
     money[i] = Convert.ToDecimal(Console.ReadLine()); 
     Console.WriteLine("i is: " + i); 
    } 
+0

Ну, тогда что не так с чтением? –

+0

Вау, вот и все. Спасибо! Но почему именно это решение? – Autoimmunity

+2

'' ReadLine() '' позволит вам напечатать, пока вы не нажмете Enter. '' Read() '' возвращается после ввода одного символа. – RasmusW

0

Привет Добро пожаловать в удивительный мир C#

Ваша проблема здесь является Console.Read()

Console.Read() даст вам Int символа 4, который ваш первый типизированный персонаж. И этот персонаж будет 52.

Таким образом, он будет петля 52 раза.

Вместо Console.Read() использовать Console.ReadLine()