Ich muss ein Menü anzeigen, das ein anderes Menü ableitet und daraus ein anderes Menü ableitet. Aber ich bin diese Menüs mit dieser Form der Validierung: (nur C-Standardbibliothek)Ist es eine gute Übung, Menüs zu validieren?
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);
Aber zum Zeitpunkt der Ableitung eines Menüs ich weiß nicht, ob das gleiche verwenden option
Variable und validOption
Flagge. Ich denke, dass das kein Problem ist, da die abgeleitetoption
Variable überschrieben werden soll und Ich werde nicht die vorherige option
Variable benötigen, da diese option
Variable für seine nur Zweck verwendet wurde, die einen bestimmten Fall mitmachen ist. Jetzt validOption
Flag ist auch kein Problem, da, wenn ein erfolgreicher Fall auftritt bedeutet, dass validOption = 1
(wird nicht mehr iterieren) und es wird mit dem vorherigen validOption
, die einen Wert von 1 (seit in einem Fall beigetreten ist) . Also wird nicht stören.
Ist es empfehlenswert, dieselben Variablen (option, validOption
) in abgeleiteten Menüs zu verwenden?
Auch ich muss mit einer getint()
Funktion validieren, die mich denken lassen, dass, wenn sogar notwendig ist, Menüs zu validieren, die es in einer praktischen Weise sehen.
#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
:) Sorry für mein Englisch, aber ja, es verursacht Verwirrung, ich war mir nicht sicher, Variablen wieder zu verwenden ... also danke. – nEAnnam
Das ist in Ordnung. Ich habe leicht verstanden, was du sowieso fragen willst ;-) –