Loading...
Ivan.Nikolov avatar Ivan.Nikolov 8 Точки

C# Basics - "SeveralOperators" issue with code

Здравейте колеги,

практикувам от скоро и сега се сблъсках с проблем в кода ми: https://gist.github.com/IvanNikolov/192e19637405a4fc6c38 и не съм сигурен как да не гърми?

Проблемът явно е, че не приема стойност (0) за / и %, но как да присвоя стойностите да са съответно стойността на второто подадено число? Опитах няколко варианта, но явно не и правилният :)

Ще съм Ви благодарен, ако помогнете.

 

 

Тагове:
1
Programming Basics
Ivan.Nikolov avatar Ivan.Nikolov 8 Точки

Благодаря ти за поясненията. Определено помага, когато някой ти обясни и сега работя над това, как да хващам ексепшъни.

 

0
Filkolev avatar Filkolev 4482 Точки

Прецени дали си струва да отделяш време за това на този етап, хващането на ексепшъни не е нещо, което ще ти трябва към момента, ще му дойде и на него времето. Но пък и не е кой знае колко голяма философия, така че защо пък да не разгледаш.

Както казах, може да се оправиш с една обикновена условна конструкция, която да гледа дали второто число (това, на което ще делиш) не е 0.

Други коментари:

  • Когато имаш умножение (понякога и събиране, но по-често умножение) трябва да внимаваш какви числа са ти подадени и ако има вероятност те да са големи ползвай като тип на резултата long.
  • За делението - помисли какво се очаква да изпишеш като резултат от делението - дали искаш да е цяло число или реално. Ако е реално трябва да го декларираш като реален тип (float/double) и при самото деление да кастнеш едното от числата към реален тип.
  • Като говорим за реални числа, всъщност аз в условието не видях ограничение числата, въведени от потребителя, да са цели, т.е. може би е по-добре всички числа в програмата ти да са floating-point типове, за предпочитане double.

Такива неща е хубаво да се научи човек да ги съобразява, защото доста помага за изпита, а и не само. Много хора губят точки с иначе верни алгоритми, защото не се сещат примерно, че като съберат две числа, които са на ръба на максимума на int, резултатът ще е по-голям от int и т.н. Мисленето какво се случва в граничните случаи е нещо, което доста повече ще ти помогне с решаването на задачи от хващането на ексепшъни.

1
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.