Софтуерно Инженерство
Loading...
Stoyan.Stoyanov avatar Stoyan.Stoyanov 96 Точки

Въпрос за форматиране на if statement

Здравейте,

Имам един въпрос - как е по-правилно да се форматира statement-a на if condition, ако условията станат по-дълги от видимата част на прозореца.

Така:

if ((numA > 0 && numB > 0 && numC > 0) || (numA < 0 && numB < 0 && numC > 0) ||

    (numA > 0 && numB < 0 && numC < 0) || (numA > 0 && numB < 0 && numC > 0))
{
     Console.WriteLine("Result: +");
}

или по-добре да остане на един ред, нищо, че е дълъг?

 

Има ли това значение при оценяване на задачите от изпита?

2
Programming Basics
RoYaL avatar RoYaL Trainer 6845 Точки

Вивалдам,

 

Ако числото трябва да се дели на 2, 3, 5 и 30 (и 4те числа)

 

ако направиш x % (a*b*c*d) == 0 ще резултира в

 

x % 2*3*5*30 == 0

x % 900 = 0

Което е грешно, защото 30 също се дели и на 2, и на 3, и на 5 и на 30 - без остатък.

 

Трябва ти още една проверка.

2
ViValDam avatar ViValDam 16 Точки

За 2, 3, 5 и 30 кода не е % (2*3*5*30), а е пак  % (2*3*5) или като ги умножим , направо % (30.

int number = 0 ;

if (number % (2*3*5) ) == 0)
{
 Console.WriteLine(number + "is divisible by 2, 3, 5 and 30 ");
 }

,защото

2*3*5 =30 

 

Не е вече % (2*3*5*30)  ,а само %30 !

 

Дай ми ,моля те, цялата задача !

 

 

 

1
g.stoyanov avatar g.stoyanov 776 Точки

Колегата има в предвид това условие:

Даденото число дали се дели на 2, 3, 5, 30. При твоя случай, както е казал колегата, тази логика при инпут 30:

30 % (2*3*5*30) == 0 няма да сработи.

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

 

П.С.: Също така те моля да обърнеш внимане на следните неща за които много колеги са ти правили забележки многократно...

1. Не пускай по два пъти пост или коментар, ако се случи скрий последния сама. Не оставяй другите да вършат тази работа вместо теб, не е трудно нали?

2. Пускай по-сложните кодове поне в pastebin.com иначе караш хората да подминават кодовете ти (просто не им се занимава да четат не форматиран код - ако се сещаш за термина КПК, точно за това говорех - хората по-лесно четат форматиран и добре организиран код) и да останеш не разбрана.

3. Не бъди "Кон с капаци", внимателно прочети темата и нейните отговори, също така отговорите на твоите постове и се опитай да рабереш какво хората се опитват да ти кажат - РАЗБЕРИ - ВНИКНИ В ЧУЖДОТО МНЕНИЕ (Опитай се да го разбереш, сигурен съм че по късно го правиш и заради прибързаността ти после изпадаш в още по-неловки ситуации) и после благодари за помоща или го оспори.

Всичко това ти го пиша с добри чувства и намерения, надявам се че всичко ще е ОК. Поздрави от мен!

0
ViValDam avatar ViValDam 16 Точки

 

За 2, 3, 5 и 30 кода не е % (2*3*5*30), а е пак  % (2*3*5) или като ги умножим , направо % (30).

int number = 0 ;

if (number % (2*3*5) ) == 0)
{
 Console.WriteLine(number + " is divisible by 2, 3, 5 and 30 ");
 }

,защото

2*3*5 =30 

 

Не е  % (2*3*5*30)  ,а само  % (2*3*5) , което е =  % (30)

 

Дай ми ,моля те, цялата задача !

 

 

0