Loading...
shady_obeyd avatar shady_obeyd 50 Точки

C# OOP Basics - February 2018 - Interfaces And Abstraction Exercise - 08.Military Elite

Здравейте! Някой може ли да помогне с 0.8 Military Elite -> трети тест гърми с недостатъчна памет ? Благодаря предварително!
Решение

EDIT: Пренаписах изцяло Main метода - премахнах case insensitive проверките, разкарах Linq, но оптимизацията падна с едва 6 MB. Не знам какво изпускам...

Тагове:
0
C# OOP Basics 02/03/2018 19:57:09
shady_obeyd avatar shady_obeyd 50 Точки

След три дни мъки отстраних проблема - Грешката ми беше, че при невалиден корпус при инженера или командоса, влизах в безкраен цикъл, защото с continue цикълът тръгваше отначало, без инпута да се промени, съответно инпута винаги остава един и същ и винаги е различен от End. Преди continue сложих да чете отново инпута от конзолата и мина с 100 / 100. Благодаря на всички за помощта! :)

1
simeon3000 avatar simeon3000 264 Точки

Да, сам си открил проблема, което е най-готино. :)

Ще си позволя една забележка - ползването на continue го намирам за лоша практика. Аз се опитвам така да си изграждам логиката, че да не ми се налага употребата. Както и break за щяло и нещяло, да не говорим за goto. Не винаги е възможно и понякога без тях кодът ще стане още по-трудно четим.

В задачи като тези, където не ни интересува "лош" изход, тоест без else, просто ще набутам всичко в if(true), нищо че ми се отмества кода с една табулация.

1
TeodorStefanovPld avatar TeodorStefanovPld 1274 Точки

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

1
shady_obeyd avatar shady_obeyd 50 Точки

Благодаря за забележката! Според мен е въпрос на лично предпочитание как дали да е с continue или if(true), но в случая щеше наистина да е по-добре, както ти предлагаш.

0
shady_obeyd avatar shady_obeyd 50 Точки

TeodorStefanovPld Исках да избегна използването на вложен try catch бпок при командоса и за това реших да валидирам направо в Main-а, a не в  set-ъра на SpecializedSoldier.

0
06/03/2018 17:47:53
TeodorStefanovPld avatar TeodorStefanovPld 1274 Точки

try catch блока няма нищо общо с командоса просто като не отговаря corp.Хвърляш exception и си го хващаш в main и продължаваш.

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