2017-01-22 8 views
1

новое для программирования, и я уже несколько недель хрустел от этого задания. У меня есть очень основное понимание C, и пока я почти закончил, я думаю, что, возможно, ошибся в выборе корпуса коммутатора для этой системы меню.Noob C help - зацикливание внутри переключателя/футляра?

Так главное меню дает 6 вариантов, этот вариант должен иметь чек, чтобы убедиться, что Z1 больше Z2

case 5: 

printf("\nEnter value Z1:\n"); 
scanf("%f", &Z1); 
printf("\nEnter value Z2:\n"); 
scanf("%f", &Z2); 

if (Z1 < Z2){ 
printf("\nZ2 must be less than Z1...\n"); 
} 

Я просто хочу, чтобы вернуть программу обратно в начале бывает, если Z1 больше, чем Z2. После прочтения другого вопроса кажется, что вы не можете зациклировать регистр переключателя, если значения не удовлетворяют утверждению if. Я понятия не имею, что писать как часть инструкции if.

Любые предложения были бы высоко оценены, я разрываю волосы, думая, что мне придется переписать большую часть его.

Извините, если это что-то действительно прямое, я искал хороший час, пытаясь найти что-то, и, возможно, я видел ответ, но просто не понял его.

Спасибо за ваше время!

+0

Вы можете использовать [GOTO statments] (https://www.tutorialspoint.com/cprogramming/c_goto_statement.htm). Кроме того, я предлагаю вам изменить свой механизм и создать цикл «infinte» внутри вашей основной функции. Таким образом, вы можете сломать или продолжить в любом случае, когда вы определяете. –

+0

Кроме того, если вы можете предоставить большую часть кода, которая включает все операторы case-switch; люди могут предлагать лучшие решения. –

ответ

1

a do {...} while (condition); петля, казалось бы, очень адаптирована; он очень близок к циклу while, за исключением того, что условие проверяется только после выполнения кода в скобки; что подразумевает, что ваш код в скобках должен запускаться хотя бы один раз. Здесь было бы:

do { 
    //get z1 and z2 
} while (Z1 < Z2); 
+0

Спасибо, ты мой герой. – tronturbo

+0

Вы очень приветствуетесь, каждый программист C застрял в простых проблемах, как ваш, когда вы начинаете ... теперь вы можете проверить ответ, чтобы сообщить, на ваш вопрос был дан ответ, поэтому другие пользователи SO могут сосредоточиться на новых проблемах. Удачи вам в учебе! –