Въпрос по задачата "Digit as Word"


1

Здравейте, на тази задача не се сещам как точно ако се въведе string да изпише "not a digit", предполагам с нещо от сорта на tryparse трябва да се получи, четох в нета, ама не ми стана много ясно как точно да го напиша. Ако някой го е разбрал и има желание да обясни ще съм благодарна. :)

using System; namespace digitAsWord { class Program { static void Main() { int result = int.Parse(Console.ReadLine()); switch (result) { case 0: Console.WriteLine("zero"); break; case 1: Console.WriteLine("one"); break; case 2: Console.WriteLine("two"); break; case 3: Console.WriteLine("three"); break; case 4: Console.WriteLine("four"); break; case 5: Console.WriteLine("five"); break; case 6: Console.WriteLine("six"); break; case 7: Console.WriteLine("seven"); break; case 8: Console.WriteLine("eight"); break; case 9: Console.WriteLine("nine"); break; default: Console.WriteLine("not a digit"); break; } } } }




Отговори



1
Може да чете резултата като стринг без да го парсваш към число, и после в кейсовете си ги проверяваш като стринг: case"1"  и т.н.

от geiff (457 точки)


1

Здравей, единият вариант е директно да четеш входа от конзолата като стринг и да проверяваш за него - лично аз използвах именно този вариант. А ако държиш да използваш int.TryParse метода можеш първо с него да се опиташ да parse-неш числото, при успех тогава да използваш switch с различните case-ове, а при неупех да отпечаташ "not a digit".

Ето линк към тези два варианта за решение на задачата - Четене директно като стринг, с int.TryParse метод




0
Благодаря за разясненията, коментарът ми беше доста полезен!

от anna_ast (127 точки)


0

Ето и моят код :

 using System;

namespace DigitAsWord
{
    class DigitAsWord
    {
        static void Main(string[] args)
        {
            string Digit = Console.ReadLine();

            switch (Digit)
            {
                case "0": Console.WriteLine("zero"); break;
                case "1": Console.WriteLine("one"); break;
                case "2": Console.WriteLine("two"); break;
                case "3": Console.WriteLine("three"); break;
                case "4": Console.WriteLine("four"); break;
                case "5": Console.WriteLine("five"); break;
                case "6": Console.WriteLine("six"); break;
                case "7": Console.WriteLine("seven"); break;
                case "8": Console.WriteLine("eight"); break;
                case "9": Console.WriteLine("nine"); break;
                default: Console.WriteLine("not a digit"); break;
            }            
        }
    }
}


от webdesign (52 точки)


0

Колега, не си си изчистил "боклуците", както казва Константин на лекциите и не си форматирал кода на суичът...

Ето го в зубърски вариант:

using System; namespace HW08DigitAsWord { class ReturnWord { static void Main() { string digit = Console.ReadLine(); switch (digit) { case "0": Console.WriteLine("zero"); break; case "1": Console.WriteLine("one"); break; case "2": Console.WriteLine("two"); break; case "3": Console.WriteLine("three"); break; case "4": Console.WriteLine("four"); break; case "5": Console.WriteLine("five"); break; case "6": Console.WriteLine("six"); break; case "7": Console.WriteLine("seven"); break; case "8": Console.WriteLine("eight"); break; case "9": Console.WriteLine("nine"); break; default: Console.WriteLine("not a digit"); break; } } } }