Checkmark on Circle.png

Kommentar (Programmierung)

Aus KGS-Wiki

Kommentare dienen beim Programmieren dazu, den Zweck von Programmteilen zu beschreiben und schwer lesbaren Code verständlicher zu machen.

👉
Hinweis

Kommentare schreibt man nicht für den Computer, damit der das Programm verarbeiten kann.

Kommentare schreibt man für sich selbst und alle anderen Menschen, die diesen Code jemals lesen und verstehen werden müssen.

Syntax

Kommentare in verschiedenen Programmiersprachen
Sprache Syntax
HTML
 <!-- Kommentar,
      darf beliebig
      lang sein -->
Python
 # Kommentar, einzeilig
 # Längere Kommentare
 # müssen in jeder Zeile
 # mit # beginnen
Java

JavaScript
C usw.

 //Einzeiliger Kommentar
 /* Mehrzeiliger
    Kommentar */
CSS

Sinnvoller Einsatz

Grundsätzlich gilt: Ein gut geschriebenes Programm braucht keine Kommentare, weil allein aus den Namen von Variablen, Funktionen und Klassen genau hervorgeht, was das Programm tut.

💬
Beispiel

Diese Funktion braucht beim besten Willen keinem Kommentar:

def addiere(summand1, summand2):
    return summand1 + summand

Ihre Aufgabe ist so banal wie offensichtlich.

Mitunter gibt es Dinge, die sich nicht so selbsterklärend aufschreiben lassen.

In diesem Fall gelten einige Faustregeln:

Funktionen
erkläre, was eine Funktion tut, nicht wie sie es tut.
💬
Beispiel

Gut:

# Diese Funktion testet mittels Probedivision, ob die über-
# gebene Zahl eine Primzahl ist, und gibt True oder False zurück
def ist_primzahl(x):
    y = 2
    while x >= sqrt(n):
        if x % y == 0:
            return False
        else:
            y = y + 1 + (y & 1)
    return True

Schlecht:

# Diese Funktion setzt eine Variable y auf 2 und zählt sie hoch bis √x
# Wenn x % y == 0 ist, wird False zurückgegeben. Wenn y > √x ist,
# wird True zurückgegeben.
def ist_primzahl(x):
    y = 2
    while x >= sqrt(n):
        if x % y == 0:
            return False
        else:
            y = y + 1 + (y & 1)
    return True
Einzelne Anweisungen
sollten nur dann kommentiert werden, wenn sie nicht intuitiv verständlich sind oder wenn ihr Sinn nicht unmittelbar einleuchtend ist.
💬
Beispiel

Gut:

def ist_primzahl(x):
    y = 2
    while x >= sqrt(n):
        if x % y == 0:
            return False
        else:
            # erhöhe y um 1, falls y gerade, sonst um 2
            # Grund: von den geraden Zahlen muss nur 2
            # getestet werden, alle anderen geraden Zahlen
            # sind Vielfache von 2. Abgesehen von 2 müssen
            # nur ungerade Zahlen getestet werden.
            y = y + 1 + (y & 1)
    return True

Schlecht:

def ist_primzahl(x):
    y = 2
    while x >= sqrt(n):
        if x % y == 0:
            # gib False zurück
            return False
        else:
            y = y + 1 + (y & 1)
    return True