我想製作一個程序,其中用戶輸入一個數字,在這種情況下是多個項目。 然後將項目數量與數組中的值進行比較,並顯示相應的折扣。輸入的數字超出數組設置的範圍,索引超出範圍錯誤
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication11
{
class Program
{
const int SIZE = 4;
static void Main(string[] args)
{
int itemsbought = 0;
int discountItem = 0;
int[] items = new int[SIZE] { 0, 10, 26, 61 };
int[] discount = new int[SIZE] { 0, 5, 10,15 };
InputItems(ref itemsbought);
getDiscount(items, discount, ref itemsbought, ref discountItem);
Console.WriteLine("Your discount is {0}", discountItem);
}
private static void getDiscount(int[] items, int[] discount, ref int itemsbought, ref int discountItem)
{
int idx = 0;
for (idx = 0; itemsbought > items[idx] || idx > items.Length; idx++)
{
discountItem = discount[idx];
}
}
private static void InputItems(ref int itemsbought)
{
Console.WriteLine("Enter the amount of items you bought");
while (!int.TryParse(Console.ReadLine(), out itemsbought))
if (itemsbought < 0)
{
Console.WriteLine("Error, whole numbers over 0 only");
}
Console.WriteLine("Error, whole numbers over 0 only");
}
}
}
當輸入上述61個電話號碼我得到「索引超出範圍」錯誤。我怎麼能這樣做,如果輸入一個高於61的數字,它顯示15?另外我怎樣才能做到這一點,使得這個邊界包含61個而不是61個,輸出10個?
同樣每次我輸入的東西,它只給出顯示的錯誤信息,只有當數字小於0或雙精度時才顯示。