我这里有代码。前两个部分很好并且很好。没有问题。
using System;
namespace MyNameSpace
{
class IntArrayDemo
{
static void Main()
{
//Declare variables
double[] dblIntArray = {100, 200, 300, 400, 500, 600, 700, 800, 900, 1000};
string[] strIntArray = {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10"};
double dblSentVal = 0;
//Get user input
Console.WriteLine("Enter 1 to view the list in numeric order. Enter 2 to view the list in reverse numeric order. Enter 3 to choose a specific position to view.");
dblSentVal = (Convert.ToDouble(Console.ReadLine()));
if (dblSentVal == 1)
{
foreach(double dblInt in dblIntArray)
Console.WriteLine(dblInt);
Console.ReadLine();
}
else if (dblSentVal == 2)
{
Array.Reverse(dblIntArray);
foreach(double dblInt in dblIntArray)
Console.WriteLine(dblInt);
Console.ReadLine();
}
else if (dblSentVal == 3)
{
for (int k = 0; k < strIntArray.Length; ++k)
{
if (strIntArray[k] == Console.ReadLine())
{
Console.WriteLine("Number {0} in the list is {1}", strIntArray[k], dblIntArray[k]);
}
}
}
Console.ReadLine();
}
}
我遇到的问题是第三个选项:
else if (dblSentVal == 3)
{
for (int k = 0; k < strIntArray.Length; ++k)
{
if (strIntArray[k] == Console.ReadLine())
{
Console.WriteLine("Number {0} in the list is {1}", strIntArray[k], dblIntArray[k]);
}
}
}
Console.ReadLine();
当执行并且选择了第三个选项时,程序将运行但是为了查看数组中的整数4,我必须在控制台中键入4次,4次,如下所示:
4 4 4 4 列表中的第4个是400
我不想要这个。它应该显示&#34;列表中的数字4是400&#34;仅输入4次后。请帮忙!
答案 0 :(得分:4)
k
时, Console.ReadLine()
等于0。 k
仅在循环中第4次等于4。
如果您希望用户输入的值是for循环中读取的内容,请将Console.ReadLine拉出循环:
string str = Console.ReadLine();
for (int k = 0; k < strIntArray.Length; ++k)
{
if (strIntArray[k] == str)
{
Console.WriteLine("Number {0} in the list is {1}", strIntArray[k], dblIntArray[k]);
}
}
答案 1 :(得分:3)
比你想象的容易:
else if (dblSentVal == 3)
{
int index = int.Parse(Console.ReadLine())
Console.WriteLine("Number {0} in the list is {1}", index, dblIntArray[index]);
}
Console.ReadLine();
它是一个数组,只是它的索引;不需要循环。
如果您的用户不使用基于0的数组,您可能希望将index-1
用于第二项:)