Мне нужно показать меню, которое выводит другое меню, и это выводит другое меню.
Но я проверяю эти меню с помощью этой формы: (Только стандартная библиотека C)
do{
validOption = 1;
printf("Option #1\n");
printf("Option #2\n");
printf("Option #3\n");
scanf("%i",&option);
switch(option){
case 1: /* Do something */ break;
case 2: /* Do something */ break;
case 3: /* Do something */ break;
default: validOption = 0; printf("Invalid Option\n"); break;
}
}while(!validOption);
Но во время создания меню я не знаю, если использовать одну и ту же переменную option
и флаг validOption
.
Я думаю, что это не проблема, так как переменная производная option
будет перезаписана и
Мне не понадобится предыдущая переменная option
, поскольку эта переменная option
использовалась только для ее
цель, которая является объединением в конкретном случае.
Теперь флаг validOption
тоже не проблема, так как при успешном выполнении случая validOption = 1
(больше не будет повторяться)
и он будет совпадать с предыдущим validOption
, имеющим значение 1 (так как был объединен в случае). Так что не будем мешать.
Является ли хорошей практикой использование одних и тех же переменных (option, validOption
) в производных меню?
Также мне нужно проверить с помощью getint()
функции, которая заставляет меня думать, что если
даже необходимо проверить меню, видя это на практике.
#include<stdio.h>
int main(){
int option;
int validOption;
do{
printf("Option #1\n");
printf("Option #2\n");
printf("Option #3\n");
scanf("%i",&option);
switch(option){
case 1:
validOption = 1;
do{
printf("Option #1\n");
printf("Option #2\n");
printf("Option #3\n");
scanf("%i",&option);
switch(option){
case 1: validOption = 1; /* Another menu with the same option and validOption variables */ break;
case 2: validOption = 1; /* Do something */ break;
case 3: validOption = 1; /* Do something */ break;
default: validOption = 0; printf("Invalid Option\n"); break;
}
}while(!validOption);
break;
case 2: validOption = 1; /* Do something */ break;
case 3: validOption = 1; /* Do something */ break;
default: validOption = 0; printf("Invalid Option\n"); break;
}
}while(!validOption);
return 0;
}
//I've put validOption = 1; within all cases just for explaining purposes