if (& radius> -1);
Потерять &
до radius
и потерять точку с запятой:
if ( radius > -1 ) { ... }
DoМне нужно иметь "еще"?
В данном конкретном случае нет.В ветке else
вы не делаете ничего, что вы безоговорочно делаете (т. Е. Оператор return
).Ветвь else
понадобится вам только в том случае, если необходимо выполнить определенное действие только при сбое условия, например, вывести сообщение об ошибке:
if ( radius > -1 )
{
...
}
else
{
printf( "Radius needs to be non-negative!\n" );
}
return 0;
Что касается того, какФормат, существует несколько стилей со своими преимуществами и недостатками.Стиль, который я предпочитаю, имеет {
и }
в своих собственных строках:
if ( condition )
{
// if branch
}
else if ( another condition )
{
// else if branch
}
else
{
// else branch
}
Этот стиль проще для меня читать, он делает более понятным, где начинаются или заканчиваются блоки и т. Д. Он также увеличиваетсяиспользование вертикального пространства, так что вы получаете меньше кода в окне, а это означает, что вам, возможно, придется прокручивать назад и вперед немного больше.
Существует так называемый стиль K & R, так как он был популяризирован Kernighan & Ritchie, где открытие {
находится на той же строке, что и if
или else
:
if ( condition ) {
// if branch
}
else if ( condition ) {
// else if branch
}
else {
// else branch
}
Не вполне так же легко определить, где начинается блок, но не так уж плохо, и несколько более компактно, так что вы можете разместить больше строк кода в ограниченном пространстве.
Тогда есть стиль, который я вычеркиваю ненавижу , который ставит закрывающий }
на той же строке, что и else
или else if
:
if ( condition ) {
// if branch
} else if ( condition ) {
// else if branch
} else {
// else branch
}
Мне очень трудно читать и следовать этому стилю.Но это самый компактный стиль, который обычно используется в ситуациях, когда экранное пространство ограничено очень (например, на слайде PowerPoint в лекции, учебном пособии или чем-то еще).
Обратите внимание, что компилятору не важно, какой стиль вы используете, при условии, что открывающая и закрывающая скобки соответствуют друг другу.Вы можете поместить все в одну строку практически без пробелов, как:
if(radius>-1){area=(int)(3.14159*radius*radius);printf("Area = %d\n", area);}else{print("Radius needs to be non-negative!\n");}
Форматирование имеет значение только для вас и любого, кто должен читать / поддерживать ваш код.Какой бы стиль вы ни выбрали, будьте последовательны с ним.