Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
索引变量中断?在C#中循环,Visual Studio 2015_C#_Loops_For Loop_Indexing - Fatal编程技术网

索引变量中断?在C#中循环,Visual Studio 2015

索引变量中断?在C#中循环,Visual Studio 2015,c#,loops,for-loop,indexing,C#,Loops,For Loop,Indexing,今天我遇到了一个问题,这让我非常恼火。我是一名新手程序员,在学习Java之后,目前正在学习C#的基础知识 今天,我在练习一个示例时遇到了以下问题: 这是我的代码运行的屏幕截图,我在循环中留下了一条print语句,以显示我的索引变量在做什么。正如您所看到的,它在循环的每次执行中递增不止一次。在使用while循环和其他项目中,我也得到了相同的结果 代码如下: class Program { static void Main(string[] args) {

今天我遇到了一个问题,这让我非常恼火。我是一名新手程序员,在学习Java之后,目前正在学习C#的基础知识

今天,我在练习一个示例时遇到了以下问题:

这是我的代码运行的屏幕截图,我在循环中留下了一条print语句,以显示我的索引变量在做什么。正如您所看到的,它在循环的每次执行中递增不止一次。在使用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);
        }

    }
 }
类程序
{
静态void Main(字符串[]参数)
{
WriteLine(“您输入了多少值”);
int value=Convert.ToInt32(Console.Read());
Console.WriteLine(“请输入您正在转换的货币的值。”);
十进制[]货币=新的十进制[值];
for(int i=0;i
在我弄清楚是什么导致了这个问题之前,我真的无法继续执行这个任务。谢谢

尝试
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);
    }
Console.WriteLine(“您输入了多少值”);
字符串输入=Console.ReadLine();
int值=转换为32(输入);
Console.WriteLine(value+“请输入您正在转换的货币的值。”);
十进制[]货币=新的十进制[值];
for(int i=0;i
嗨,欢迎来到C的精彩世界#

这里的问题是
Console.Read()

Console.Read()
将为您提供第一个键入的字符
4
的int。这个角色将是52岁

因此,它将循环52次


不要使用
Console.Read()
而是使用
Console.ReadLine()

哇,就是这样。非常感谢。但这到底是为什么呢?
ReadLine()
将允许您在按下Enter键之前进行键入
Read()
在输入一个字符后返回。
Read()
也只有在按Enter键后才会返回。但是在一个int值流中。在你的屏幕截图中,值从0到4递增1。有什么问题吗?这不是你想要达到的吗?