@nnGot583
c#, iOS дизассемблирование

Проблема с кодом на C#?

Я написал простой конвертер валют.
using System;

namespace LamaC
{
    class Program
    {
        static void Main(string[] args)
        {
            string list;
            string strcount;
            int count;
            string valutetoconvert;
            int res;
            int a = 75;
            int b = 71;
            double c = 0.013;
            double d = 0.95;
            double e = 1.05;
            double f = 0.014;

            Console.WriteLine("Enter your valute.");
            Console.WriteLine("");
            Console.WriteLine("for valute list write: /List ");

            list = Console.ReadLine();

            if (list == "/List")
            {
                Console.WriteLine(" dollar = d; euro = e; rubl' = r; ");
            }

            
            
                list = Console.ReadLine();

                if (list == "r")
                {
                    Console.WriteLine("Enter count of rubles");



                    strcount = Console.ReadLine();

                    count = Convert.ToInt32(strcount);

                    Console.WriteLine("Enter 2 valute for know how much is in this valute (d or e)");

                    valutetoconvert = Console.ReadLine();

                    if (valutetoconvert == "e")
                    {
                        res = count / a;

                        Console.WriteLine("is " + res + " euro");
                    }

                     if (valutetoconvert == "d")
                    {
                        res = count / b;

                        Console.WriteLine("is " + res + " euro");
                    }

                

                

                     if (list == "e")
                    {
                        Console.WriteLine("Enter count of euro");



                        strcount = Console.ReadLine();

                        count = Convert.ToInt32(strcount);

                        Console.WriteLine("Enter 2 valute for know how much is in this valute (r or d)");

                        valutetoconvert = Console.ReadLine();

                        if (valutetoconvert == "r")
                        {
                            res = (int)(count / (double)c);

                            Console.WriteLine("is " + res + " rubls");
                        }

                        if (valutetoconvert == "d")
                        {
                            res = (int)(count / (double)d);

                            Console.WriteLine("is " + res + " dollars");
                        }


                        

                         if (list == "d")
                        {

                            Console.WriteLine("Enter count of dollar");



                            strcount = Console.ReadLine();

                            count = Convert.ToInt32(strcount);

                            Console.WriteLine("Enter 2 valute for know ho much is in this valute (r or e)");

                            valutetoconvert = Console.ReadLine();

                            if (valutetoconvert == "e")
                            {
                                res = (int)(count / (double)e);

                                Console.WriteLine("is " + res + " euro");
                            }

                            if (valutetoconvert == "r")
                            {
                                res = (int)(count / (double)f);

                                Console.WriteLine("is " + res + " rubls");
                            }


                        }
                    }

                }
            
        }
    }
}

Но он работает не совсем корректно.

Работает примерно так:

Сначала код просит ввести /List (но мы можем просто нажать return и код пойдет дальше.
Дальше вводим нужную нам валюту.
Затем вводим ее количество.
И потом вводит валюту в которую хотим конвертировать.

А проблема в том, что с if (list == "r") все работает отлично, но если if (list == "e") или if (list == "d"), программа тупо отказывается выполнять код в if и завершается.
  • Вопрос задан
  • 134 просмотра
Решения вопроса 1
QuiShimo
@QuiShimo
Держу путь на бекэнд :)
Привет!

Думаю, вы тут перемудрили с кодом. Конкретно по вашей проблеме, блоки if для евро и доллара находятся внутри блока для рублей. Поэтому не читаются, т.е. примерно так:
if (list == "r")
 { ...
   if (list == "e") {...}
   if (list == "d") {...}
}


А нужно сделать так
if (list == "r") { ... }
if (list == "e") {...}
 if (list == "d") {...}


И для одинакового кода лучше использовать методы или почитать больше уроков, чтобы понять как сделать этот код проще и лучше :)

P.S. Вопросы лучше оформлять, так больше шансов на ответ или комментарии
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы