Überflüssiges im Codebeispiel?



  • Hallo

    Heute bin ich bei Schleifen angelangt. Es läuft Alles recht gut aber im folgenden Codebeispiel bin ich leicht verwirrt:

    #include<stdio.h>
    
    int main()
    {
    int summand, summe=0;
    
    do
    {
    	printf("\nSumme = %d", summe);
    	printf("\nEingabe von Summand zwischn 1 und 50: ", summe); //Ist die Variable "summe" hier nicht unnötig weil hier eine Formatierungsanweißung fehlt?
    	scanf("%d", &summand);
    
    	if(summand < 1 || summand > 50)
    	  {
    	  	break;
    	  }
    
    	  summe += summand;
    }
    while(summe<100);
    
    if(summe < 100)
      {
      	printf("\nSie haben die Zahl 100 wegen ungueltiger Eingaben nicht erreicht.\n");
      }
    else
      {
      	printf("\nSie haben den Wert 100 erreicht.\n", summe); //Und hier genau das Gleiche?
      }
    
      return 0;
    
    }
    

    Wie schon oben im Code kommentiert: Ist diese Variable unnötig (also ein Fehler vom Tutorialschreiber oder hat es hier auch einen Zweck?

    MfG



  • Du hast recht, die Angabe der Variable ist nicht nötig (und demnach überflüssig)
    Sind wohl Reste von Copy&Paste



  • Dabei kannst du dir auch gleich merken, dass Variablen so lokal wie möglich definiert sein sollten, in deinem Fall also summand innerhalb des Codeblocks "{}" der while-Schleife, denn nur dort wird summand verwendet.
    Das führt in der Folge auch dazu, dass keine globalen Variablen existieren (ein weiterer häufiger Anfängerfehler), da globale Variablen immer nur außerhalb jedes Codeblocks existieren.



  • @Wutz:

    Was sind globale Variablen? Ich weiß nur über Google dass es was mit Funktionen zu tun hat aber so weit bin ich noch nicht. Ab welchem Thema wird das gelehrt?



  • Ich hoffe, dass du globale Variablen überhaupt nicht "gelehrt" bekommst.
    Globale Variablen sind schlimmer Anfängerschrott und führen eben gerade bei Anfängern zu schlechten Angewohnheiten beim Programmdesign.
    Lerne sie gar nicht erst, dann bleibst du von dem Unsinn verschont.



  • Globale Variablen sind Variablen, die im gesamten Programm verfügbar sind:

    // Globale Variable
    int global;
    
    int main()
    {
     // Funktionslokale Variable
     int funktions_lokal;
    
     if (...)
     {
       // Die Variable ist nur in der if-Abfrage bekannt
       int noch_lokaler;
    
       while (...)
       {
         // Diese Variable ist die lokalste von allen
         int und_noch_viel_lokaler;
       }
     }
    }
    

    Das Ziel ist es, dass man Variablen erst dort deklariert, wo man sie braucht.


Log in to reply