При программировании на C я использую условный оператор (? :). Но я не хочу использовать еще часть.Как написать условный оператор (? :) без использования else
if(x!=1){printf("Hello");}
Как написать условный оператор?
При программировании на C я использую условный оператор (? :). Но я не хочу использовать еще часть.Как написать условный оператор (? :) без использования else
if(x!=1){printf("Hello");}
Как написать условный оператор?
Хотя они выглядят похожими по функции, условные операторы не совпадают с условными операторами (утверждениями IF).
Основной целью условного оператора является изменение того, какое значение присваивается переменной, в зависимости от состояния.
Учитывая следующее (ужасный) пример ...
if(raining==true)
{
take="umbrella";
}
else if(raining==false)
{
take="sunglasses";
}
Это можно переписать просто как:
take=(raining ? "umbrella" : "sunglasses");
Это главная цель условного оператора. Но, как сказал Оливер Чарлворт в комментариях, он не предназначен для контроля потока.
Таким образом, как правило, если вы находите себя в месте, где вы хотите условного оператора без else, вы используете условные операторы неправильно.
Вторичная цель условного оператора, если быстро сделать C/C++/Java-программу нечитаемой. – jdarthenay
@jdarthenay, ха-ха, когда используется неправильно, это конечно !!Я замечаю, что при использовании * мудро *, это на самом деле повышает читаемость. Я предпочитаю их самих, для определенных ситуаций, подобных тому, который я опубликовал в своем ответе. Вне таких вещей или при чрезмерном использовании это настоящий дымовой экран. – CodeMouse92
Тройная оператор ?:
требуется выражение, если условие не выполнено, то всегда можно поместить значение «фиктивный» там такие, как значение 0
, как в следующем примере:
x != 1 ? printf("Hello") : 0;
An «Если» утверждение, вероятно, будет лучшим способом пойти в таких случаях.
Я искал что-то, где он ничего не возвращает. –
Это совершенно правильное утверждение. Оператор может быть действительным, даже если он не присваивает результат. Например, выражение 'x;' является выражением, значение которого ничем не привязано, а компилируется. Точно так же выражение в этом ответе либо имеет значение, возвращаемое 'printf', либо' 0', но оно ничем не привязано. –
Это другой оператор &&
и позволяет опустить еще часть:
#include <stdio.h>
int main() {
int x = 1;
x != 1 && printf ("Hello\n");
return 0;
}
Попробуйте запустить программу, а затем изменить x
к 2
и запустить снова.
Это еще более тупой. Пожалуйста, не делайте этого. –
@OliverCharlesworth Не делай этого, потому что земля трясет, а две разломаются? –
@Frankie_C, который даже не компилируется. –
Не пытайтесь использовать условный оператор для этого - он не предназначен для потока управления. –
Разница между условными операторами и операторы if аналогичны отверткам Flathead и Phillips - иногда вы можете использовать плоскую головку вместо Phillips, но это не подходит для работы. Одной из основных целей условного оператора является изменение значения, которое вы назначаете переменной в зависимости от условия. Он не предназначен как замена для if-statement * per se *. – CodeMouse92