#c# #arrays #if-statement #for-loop
#c# #массивы #if-оператор #для цикла
Вопрос:
Мне нужно определить три массива (размер, цена и дополнительные). Затем мне пришлось спросить у них их размер и выбор начинки.
Используя цикл for и технику параллельного массива, пройдитесь по массиву size, чтобы найти размер, соответствующий вводимым пользователем данным. Используя текущий индекс вашего цикла, найдите цену для этого размера в массиве цен и напишите пользователю, сколько будет стоить пицца.
Если пользователь сказал, что ему нужны дополнительные начинки, все еще используя тот же индекс для вашего цикла, посмотрите, сколько это стоит в вашем дополнительном массиве, и сообщите пользователю общую стоимость пиццы.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string[] sizes = { "S", "M", "L", "X" };
double[] prices = { 6.99, 8.99, 12.50, 15.00 };
double[] extra = { 1.00, 2.00, 3.25, 4.50 };
string inputToppings;
string inputSize;
Console.Write("What size pizza would you like? Enter S, M, L, or X: ");
inputSize = Console.ReadLine();
Console.Write("Would you like extra toppings? Enter Y or N: ");
inputToppings = Console.ReadLine();
for (int i = 0; i < sizes.Length; i )
{
if (sizes[i] == inputSize)
{
Console.WriteLine("You ordered a {0} pizza that costs {1:C}.", sizes[i], prices[i]);
break;
}
}
Console.ReadLine();
}
}
}
Моя проблема в том, что я могу получить правильные входные данные для размера и цены пиццы, но я не могу использовать рабочее заявление для отображения цены размера пиццы с начинкой в виде строки записи. Я потратил на это часы и не могу найти рабочий метод. Пожалуйста, помогите…
Комментарии:
1. Я знаю, что это, вероятно, домашнее задание, и вы должны сделать это таким образом, но это не очень хороший дизайн. Гораздо лучший способ сделать это — вызвать класс
Pizza
, который имеет 3 свойства: размер, цена и Дополнительные. Тогда у вас есть одинPizza[]
Ответ №1:
Попробуйте изменить свой цикл «for» на:
for (int i = 0; i < sizes.Length; i )
{
if (sizes[i] == inputSize)
{
var totalPrice = prices[i] (inputToppings == "Y" ? extra[i] : 0);
Console.WriteLine("You ordered a {0} pizza that costs {1:C}.", sizes[i], totalPrice);
break;
}
}
Надеюсь, это поможет.