2017-02-03 7 views
-5

Проблема, которую я задаю для создания программы, где пользователь должен ввести целочисленное значение (от 1 до 4), и в зависимости от ввода должен быть сгенерирован определенный выход.Как я могу переписать эту структуру выбора только с операторами?

Он также должен предоставить ошибку пользователя, когда введенное значение не находится между 1 и 4.

мне удалось записать его, используя в том и другое заявление, однако, я хотел, если это возможно, чтобы знать написать это, используя только операторы if.

If and Else statement

+6

Лучше всего добавить фрагмент кода вместо изображения. –

+0

'if (x) {a} else {b}' = 'if (x) {a} if (! X) {b}' Не очень полезная вещь. Кроме того, вы получаете downvoted, потому что размещение скриншота вместо фактического кода довольно лениво. – Zong

+0

Да, вы можете избежать высказываний 'else', повторив те же проверки. Но это неэффективно. Или вы можете установить переменную флага в каждом успешном заявлении, так как говорите, что входной сигнал был хорошим. Затем сообщение об ошибке проверяет это. –

ответ

1

есть много способов кожи этого кота! Хотя использование других операторов не является одним из них, установка такого ограничения кажется ненужным и делает код менее удобочитаемым и ничего не делает для else, эквивалентен if (! resp_1 == 1 ||...), также обратите внимание, что вы были избыточными в своих операторах if, имеющих проверку, если resp_1 был равен 1 или 2 или 3 или 4, прежде чем снова проверять индивидуально и печатать текст.

мое предложение было бы использовать переключатель, читаем, и быстро реализовать

switch(resp_1){ 
    case(1): /*print*/ break; 
    case(2): /*print*/ break; 
    case(3): /*print*/ break; 
    case(4): /*print*/ break; 
    defualt: /*Print if not 1,2,3,4*/ 
} 
+0

Да, я бы использовал переключатель, однако проблема конкретно просит использовать инструкции if. В любом случае спасибо! –

+0

Я бы сказал, что если в вопросе спрашивается использовать выражения if, которые вы должны использовать, просто следуйте моему предложению, чтобы удалить начальную проверку значения resp_1, и если вы не хотите else, используйте идею за другим будучи отрицанием предыдущего, если staces –

1

Если необходимо использовать if заявления только, то просто цепь их всех.

if  (resp_1 == 1) { 
    // Print output for 1 
} else if (resp_1 == 2) { 
    // Print output for 2 
} else if (resp_1 == 3) { 
    // Print output for 3 
} else if (resp_1 == 4) { 
    // Print output for 4 
} else { 
    // Print error 
} 

Оператор if-else выполняет (точно) одну ветвь. И здесь каждая другая ветвь - это еще один оператор if-else. Таким образом, будет выполняться только одна ветка; либо одну из ветвей для действительного ввода, либо последнюю ветку else.

И хотя можно использовать флаг и написать это без единого предложения else, ИМО будет гораздо менее понятным, что вы намеревались произойти. При написании кода всегда выбирайте вариант, который наилучшим образом отражает ваши намерения. Через две недели после того, как код потребует уточнения, сначала вам будет проще объяснить это самому себе.

+0

Никогда не думал об этом +1. –