Bei Falscheingabe Funktion wiederholen



  • Guten Morgen,
    habe eine Funktion, in der ich ein paar Befehle drin habe. In einer if-Abfrage soll er wenn die Bedingung nicht erfüllt wird die Funktion wieder von Anfang an beginnen.

    printf("Geben Sie eine Artikelnummer ein (9-stellig): ");
            scanf("%9ld",&head -> Artikelnummer);
    
    		if(aktuell != NULL)
    		{
    			while(aktuell != NULL)
    				{	
    					if(aktuell->Artikelnummer == head->Artikelnummer)
    					{				
    						printf("Diese Artikelnummer ist schon vorhanden!");
    						printf("Geben Sie eine Artikelnummer ein (9-stellig): ");
    						scanf("%9ld",&head -> Artikelnummer);
    					}	
    					else
    						break;
    					aktuell = aktuell->next;
    				}
    		}
    

    Es wäre auch OK wenn er jedenfalls, wenn die Artikelnummer vorhanden ist, die Artikelnummer nochmal eingeben lässt.
    Das habe ich versucht hier zu programmieren, jedoch nachdem ich zweimal hintereinander die selbe Artikelnummer benutze aktzeptiert er diese und fährt fort.

    Hat jemand eine Idee wie ich das verhindern kann. Habe es schon mit einigen weiteren Schleifen probiert, war aber erfolglos.

    Bin froh, wenn mir jemand schnell helfen könnte.



  • Vielleicht sowas hier:

    int isInArtikelliste(artikelnummer){
        for (temp = head; temp; temp = temp->next)
            if (artikelnummer==temp.Artikelnummer) return 1;
        return 0;
    }
    
    for(;;){
        printf("Geben Sie eine Artikelnummer ein (9-stellig): ");
        scanf("%9ld",&head->Artikelnummer);
        if (isInArtikelliste(head->Artikelnummer))
            printf("Diese Artikelnummer ist schon vorhanden!");
        else break;
    }
    

Anmelden zum Antworten