Announcement

Collapse
No announcement yet.

Verständniss Frage (for-schleife)

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Verständniss Frage (for-schleife)

    Hallo Community,
    ich habe gerade eine Schleife Iteration geschrieben die 1+2+3+...+n rechnet. Dabei ist mir etwas aufgefallen:

    Code:
    #include<stdio.h>
    #include<conio.h>
    
    void main()
    {
    	int i, n, a=0;
    	printf("Bitte geben Sie n ein:");
    	scanf("%d",&n);
    		
    	for (i=1;i<=n;i++)
    	{
    	  a=a+i;
    	}
    	printf("%d\n",a);
    }
    wenn ich bei der Bedingung in der for schleife i kleiner gleich n benutze funktioniert alles einwandfrei.


    Wenn ich allerdings die Bedingung in der for schleife auf i == n setze durchläuft das Programm die schleife überhaupt nicht und gibt 0 aus.
    Wieso ist das so? n wird ja vorher von mir eingegeben. Also müsste wenn ich für n = 5 eingebe, in der schleifen Bedingung i == 5 stehen, da i als start wert 1 besitzt müsste er doch die Schleife durchlaufen. Wieso tut er das nicht?

    Code:
    #include<stdio.h>
    #include<conio.h>
    
    void main()
    {
    	int i, n, a=0;
    	printf("Bitte geben Sie n ein:");
    	scanf("%d",&n);
    		
    
    	for (i=1;i==n;i++) //wieso funktioniert i istgleich n nicht?
    	{
    	  a=a+i;
    	}
    	printf("%d\n",a);
    }

  • #2
    Man lässt sich hier verleiten zu der Bedingung "führe die Schleife solange aus bis i==n ist". Das steht aber nicht da.

    Vielmehr ist der 2. Teil der for-Schleife die Abbruchbedingung. Diese sagt aus i==n ist false. Demzufolge wird die Schleife nicht augeführt.

    Das "solange" im obigen Satz wird erst durch < erreicht.
    Christian

    Comment


    • #3
      Genau.
      "i=1;i<=n;i++" bedeutet soviel, wie "Starte bei i=1 und durchlaufe die Schleife ein weiteres Mal wenn i kleiner oder gleich n ist. Dannach erhöhe i um 1."

      "i=1;i==n;i++" hingegen bedeutet "Starte bei i=1 und durchlaufe die Schleife ein weiteres Mal, wenn i gleich n ist. Dannach erhöhe i um 1."

      Comment

      Working...
      X