Einführung in die Verbundanweisung (den Block, die Sequenz) in C im Rahmen der Lehre des Programmierens mit der Programmiersprache C. [] (C Block C compound-statement C Sequenz C Verbundanweisung C Anweisungsverbund C), Lektion, Seite 721360
https://www.purl.org/stefan_ram/pub/c_verbundanweisung_de (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
C-Kurs

Verbundanweisungen in C 

Einführende Beispiele

Im folgenden Beispielprogramm findet sich eine Verbundanweisung.

main.c

#include <stdio.h>

int main( void )
{ printf( "%d\n", 7 ); } /*
*
'---Verbundanweisung---' */

stdout
7

Eine Verbundanweisung ist derjenige Teil des obenstehenden Programms, welcher aus den inneren geschweiften Klammern samt ihrem Inhalt besteht.

Eine Verbundanweisung
{ printf( "%d\n", 7 ); }

Zum Worte „Block“ *

In dieser Lektion behandeln wir Anweisungen, die mit einer geschweiften Klammer auf »{« beginnen und mit einer geschweiften Klammern zu »}« enden, und solche Anweisungen sind stets Verbundanweisungen.

Jede Verbundanweisung ist auch ein Block, so daß man die hier behandelten Verbundanweisungen auch als „Block“ bezeichnen kann. Dies ist aber etwas weniger genau, weil es in C  auch andere Arten von Blöcken gibt, die wir später kennenlernen werden. Deswegen bevorzugen wir zur Bezeichnung einer Verbundanweisung hier die Bezeichnung „Verbundanweisung“.

Definition von “block ” in C  *
A block allows a set of declarations and statements to be grouped into one syntactic unit.
Aussage über “compound statement ” und “block ” in C  *
A compound statement is a block.

Syntax

Eine Verbundanweisung ist eine Anweisung.

Eine Verbundanweisung besteht aus einer geschweiften Klammer auf »{«, einer optionalen Folge von Anweisungen, und einer geschweiften Klammer zu »}«.

Verbundanweisung (Syntaxdiagramm)
Anweisung
.-. .-.
---->( { )----.----------------------.---->( } )---->
'-' | | '-'
| .-----------. |
'----| Anweisung |<----'
'-----------'

Jede der beiden geschweiften Klammer ist eine trennende lexikalische Einheit für sich.

Zum Vergleich:

Morphologisches Diagramm
Zeichenfolgenliteral (vereinfacht)
.-. .-.
|-|--->( " )---.------------------.--->( " )--->|-|
'-' ^ | '-'
| .---------. |
'---| Zeichen |<---'
'---------'

Semantik

Bei der Ausführung einer Verbundanweisung werden die in der Verbundanweisung enthaltenen Anweisungen in der Reihenfolge, in der sie dastehen, zeitlich hintereinander ausgeführt. Dabei wird mit der Abarbeitung einer in der Verbundanweisung enthaltenen Anweisung erst begonnen, wenn die Abarbeitung der vorigen Anweisung beendet wurde.

Aussage über die Reihenfolge der Ausfühung von Anweisungen in C  *
Except as indicated, statements are executed in sequence.

Die Verbundanweisung als eine einzige Anweisung

Eine Verbundanweisung kann zwar mehrere  Anweisungen enthalten, aber sie verbindet diese zu einer einzigen Anweisung. Daher stammt auch die Bezeichnung „Verbundanweisung“. Dies bedeutet, daß eine Verbundanweisung an Stellen in Programm verwendet werden darf, an denen nur eine einzige  Anweisung gestattet ist, selbst wenn sie ihrerseits mehrere  Anweisungen enthält.

Da eine Verbundanweisung selber auch eine Anweisung ist, darf eine Verbundanweisung auch in eine andere Verbundanweisung eingesetzt werden!

In dem folgenden Programm dient die innerste Verbundanweisung beispielsweise dazu, klarzustellen, auf welche Zeilen sich der Kommentar bezieht.

main.c

#include <stdio.h>

int main( void )
{ { /* Ausgabe einiger gerader Zahlen */
printf( "%d\n", 4 );
printf( "%d\n", 12 );
printf( "%d\n", 8 ); }
printf( "%d\n", 7 );
printf( "%d\n", 17 );
printf( "%d\n", 11 );
printf( "%d\n", 9 ); }

stdout
4
12
8
7
17
11
9

Die Augabe des Programms würde sich aber nicht verändern, wenn die inneren Klammern entfernt werden würden.

main.c

#include <stdio.h>

int main( void )
{ /* Ausgabe einiger gerader Zahlen */
printf( "%d\n", 4 );
printf( "%d\n", 12 );
printf( "%d\n", 8 );
printf( "%d\n", 7 );
printf( "%d\n", 17 );
printf( "%d\n", 11 );
printf( "%d\n", 9 ); }

stdout
4
12
8
7
17
11
9

Die Verbundanweisung wird jedoch auf jeden Fall direkt nach »int main( void )«, da dort keine andere Anweisung folgen darf.

Strukturierung mit Verbundanweisungen

In dem folgenden Beispielprogramm werden Verbundanweisungen (und zwei Leerzeilen) zur übersichtlichen Gliederung von Anweisungen zur Ausgabe eines Liedtextes verwendet. Die Klammern schließen jeweils eine Strophe und den Kehrreim ein.

main.c

#include <stdio.h>

int main( void )
{

{ puts( "Auf einem Baum ein Kuckuck, -" );
{ puts( "Sim sa la dim, bam ba," );
puts( "Sa la du, sa la dim -" ); }
puts( "Auf einem Baum ein Kuckuck sass." ); }

{ puts( "Da kam ein junger Jaeger, -" );
{ puts( "Sim sa la dim, bam ba," );
puts( "Sa la du, sa la dim -" ); }
puts( "Da kam ein junger Jaegersmann." ); }

{ puts( "Der schoss den armen Kuckuck, -" );
{ puts( "Sim sa la dim, bam ba," );
puts( "Sa la du, sa la dim -" ); }
puts( "Der schoss den armen Kuckuck tot." ); }}

stdout
Auf einem Baum ein Kuckuck, -
Sim sa la dim, bam ba,
Sa la du, sa la dim -
Auf einem Baum ein Kuckuck sass.
Da kam ein junger Jaeger, -
Sim sa la dim, bam ba,
Sa la du, sa la dim -
Da kam ein junger Jaegersmann.
Der schoss den armen Kuckuck, -
Sim sa la dim, bam ba,
Sa la du, sa la dim -
Der schoss den armen Kuckuck tot.

Die Positionierung von Klammern

Da Klammern trennende lexikalische Einheiten sind, kann man sie auf Zeilen positionieren wie man will. Die folgenden beiden Programme zeigen nur zwei  verschiedenen Möglichkeiten von vielen.

main.c

#include <stdio.h>

int main( void )
{ printf( "%d\n", 1 );
{ printf( "%d\n", 2 ); }
printf( "%d\n", 3 ); }

stdout
1
2
3
main.c

#include <stdio.h>

int main( void )
{ printf( "%d\n", 1 );

{
printf( "%d\n", 2 );
}

printf( "%d\n", 3 ); }

stdout
1
2
3

Ein Leser dieses Kurses braucht die in diesem Kurs oft verwendete Art der Positionierung geschweifter Klammern nicht  zu übernehmen, sondern kann die geschweiften Klammern beim Schreiben eigener Programme so positionieren, wie dies für ihn am übersichtlichsten ist.

Falls ein Leser dieses Kurses im Rahmen einer Ausbildung, einer Prüfung, eines Programmierprojekts oder eines Arbeitsverhältnisses Programme schreibt, sollte er dort erfragen, welcher Stil dort verlangt wird oder üblich ist, und dann diesen Stil verwenden.

Anweisungen und Semikolons

Oft hört man die falsche  Aussage „Jede Anweisung  endet mit einem Semikolon.“

Wir kennen aber nun schon die Verbundanweisung, die auch eine Anweisung ist, als ein Gegenbeispiel: Eine Verbundanweisung endet mit einer geschweiften Klammer!

Richtig wäre es höchstens zu sagen: „Jede Auswertungsanweisung  endet mit einem Semikolon.“

Anweisungen (Zusammenfassung)

Wir kennen jetzt folgende Arten  von Anweisungen:

Übungsaufgaben

/   Editieren der Lied-Klasse *

main.c

#include <stdio.h>

int main( void )
{

{ puts( "Auf einem Baum ein Kuckuck, -" );
{ puts( "Sim sa la dim, bam ba," );
puts( "Sa la du, sa la dim -" ); }
puts( "Auf einem Baum ein Kuckuck sass." ); }

{ puts( "Da kam ein junger Jaeger, -" );
{ puts( "Sim sa la dim, bam ba," );
puts( "Sa la du, sa la dim -" ); }
puts( "Da kam ein junger Jaegersmann." ); }

{ puts( "Der schoss den armen Kuckuck, -" );
{ puts( "Sim sa la dim, bam ba," );
puts( "Sa la du, sa la dim -" ); }
puts( "Der schoss den armen Kuckuck tot." ); }}

Überarbeiten Sie den über diesem Satz stehenden Quelltext:

Falls Sie die Positionierung der geschweiften Klammern als unübersichtlich empfinden, so können Sie diese vor dem Editieren auch erst einmal umstellen, beispielsweise wie folgt. (Es gibt unterschiedliche Ansichten darüber, welche Positionierung der Klammern am übersichtlichsten ist.)

main.c

#include <stdio.h>

int main( void )
{

{
puts( "Auf einem Baum ein Kuckuck, -" );
{
puts( "Sim sa la dim, bam ba," );
puts( "Sa la du, sa la dim -" );
}
puts( "Auf einem Baum ein Kuckuck sass." );
}

{
puts( "Da kam ein junger Jaeger, -" );
{
puts( "Sim sa la dim, bam ba," );
puts( "Sa la du, sa la dim -" );
}
puts( "Da kam ein junger Jaegersmann." );
}

{
puts( "Der schoss den armen Kuckuck, -" );
{
puts( "Sim sa la dim, bam ba," );
puts( "Sa la du, sa la dim -" );
}
puts( "Der schoss den armen Kuckuck tot." );
}
}

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Eine Verbindung zur Stefan-Ram-Startseite befindet sich oben auf dieser Seite hinter dem Text "Stefan Ram".)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. Schlüsselwörter zu dieser Seite/relevant keywords describing this page: Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram721360 stefan_ram:721360 C Block C compound-statement C Sequenz C Verbundanweisung C Anweisungsverbund C source, source code,sourcecode, Programmier sprache C, C, Programm, Programme, C-Programm C Sprache C Programmiersprache C C-Programme, Programmieren in C, Die Programmiersprache C, Die Programmier-Sprache C, C-Programmierung, Die Programmier Sprache C, ANSI-C, Standard C, ISO-C, International Standard ISO/IEC 9899:1999 (E), ANSI X3.159-1989, C90, C99, ANSI/ISO-C, ISO/IEC-C, IEC-C, ISO/IEC 9899:1999 (E), Standard C programmieren, Standart C programmieren, INCITS/ISO/IEC 9899-1999, Programming Languages - C (formerly ANSI/ISO/IEC 9899-1999) , Softwareentwicklung, Software-Entwicklung, Software Entwicklung, Softwareprogrammierung, Software-Programmierung, Software Programmierung, Softwareherstellung, Software-Herstellung, Software Herstellung, Softwareerstellung, Software-Erstellung, Software Erstellung, Softwareengineering, Software-Engineering, Software Engineering, Softwareenginering, Software-Enginering, Software Enginering, Softwaremethodik, Software-Methodik, Software Methodik, Programmiermethodik, Programmier-Methodik, Programmier Methodik, Softwaredidaktik, Software-Didaktik, Software Didaktik, Methodik des Programmierens, Didaktik des Programmierens, Fachdidaktik des Programmierens, Fach-Didaktik des Programmierens, Programmieren, Programmierung, Computer Science, Informatik, Informatik, Informationspädagogik, Informationspaedagogik, Programmierer, programmieren, Quellcode, Quelltext, Quelle, Quellen, Informatiker, Fachinformatiker, Entwickler, mit Stil, mit Stiel, mit Still, , Einführung, Einfuehrung, Einführungen, Einfuehrungen, eLearning-Modul, e-Learning-Modul, eLearning-Module, e-Learning-Module, Kurs Berlin, Kurse Berlin, Kursus, Vortrag, Vorträge, Vortraege, Lehrgang, Lehrgänge, Lehrgaenge, kostenloses Lehrmaterial, kostenlose Lehrmaterialien, Vorlesung, Vorlesungen, Unterrichtseinheit, Unterrichtseinheiten, kostenloses Unterrichtsmaterial im Internet, kostenlose Unterrichtsmaterialien im Internet, Ausbildung, Ausbildungen, für die Ausbildung, Fortbildung, Fortbildungen, Weiterbildung, Weiterbildungen, Schulung Berlin, Schulungen Berlin, Internetschulung, Webschulung, Kursunterlage, Kursunterlagen, trainer Berlin, Didaktik, Informatikunterricht, Primer, Skript FH, Skripte FH, Skriptum FH, Skripts FH, Script FH, Scripte FH, Scriptum FH, Scripts FH, howto, how-to, how to, Lehrbuch, Buch, Bücher, Buecher, Bericht, Crash Kurs Berlin, Crash-Kurs Berlin, Crashkurs Berlin, Report, Sachtext, Sachtexte, Übung, Übungen, Uebung, Uebungen, course, PbclevtugFgrsnaEnz, lecture note, lecture notes, Tutorial, Tutor, Tutorium, Teacher, Lehrer Berlin, Trainer Berlin, Beratung Berlin, Anleitung zum, Anleitungen zum, Einführung, Einfuehrung, Einführungen, Einfuehrungen, Handbuch für, Handbücher, Handbuecher, Support, Diplomarbeit, Facharbeit, Hausarbeit, Hausarbeiten, Werk, Werke, Text, Übungsblatt, Uebungsblatt, Lösung, Loesung, Lösungen, Loesungen, Auflösung, Aufloesung, Auflösungen, Aufloesungen, Facharbeit, Facharbeiten, Forum, Training, manual, Folie, Folien, Lehrmittel, beratung, Definition von, Allgemeine Erklärung, Allgemeine Erklaerung, Allgemeine Erklärungen, Allgemeine Erklaerung, Allgemeine Erklaerungen, Einfache Erklärung einfach, Einfache Erklaerung einfach, Einfache Erklärungen, Einfache Erklaerung, Einfache Erklaerungen, zum Thema, FAQ, FAQs, Konzept, Lernkurs, Lern-Kurs, Lernkurse, Lern-Kurse, eine kurze Erklärung, Begriff, Begriffe, Erklärung zu Begriffen, begriffbestimmung, begriffbestimmung, Begriffsbestimmung, Begriffserklärung, Begriffserklaerung, Wort, Worterklärung, Worterklaerung, Definition, Beispiel, Beispiele, Bedeutung, Bedeutungen, was bedeutet, Begriffsdefinition, für Anfänger, fuer Anfaenger, für Einsteiger, für Beginner, zum selber Lernen, handout, hand out, web based training, WBT, Net Based Training, NBT, computer based training, CBT, virtual learning environment, virtual university, für die Schule, Seminar, Seminare, Vorgehensweise, Pädagogik, Paedagogik, Akademie, Onlineacademie, Onlineakademie, Wissen, Unterrichtsvorbereitung für das Fach, Unterricht, für Lehrer, für Lehrerinnen, Referat, Referate, Hausaufgabe, Hausaufgaben, Tip, Tipp. Tipps und Tricks, Tips und Tricks, Methode, Methoden, Methodik, Funktion, Funktionsweise, Aufbau, Prinzip, Grundlage, Grundlagen, Internetschulung, Unterlage, Unterlagen, Struktur, Frage, Fragen, Antwort, Antworten, Schulunterricht, zum erlernen, was ist das?, wie?, lerne, Onlineausbildung, Onlinelehrgang, Onlinekurs, Onlinebuch, Webbuch, Academy, Fachhochschule, FH, TFH, Hochschule, Universität, Universitaet, Uni, Schule, Berufsschule, Gymnasium, Erste Schritte mit, Dozent, Dozenten, Zusammenfassung, Übersicht, Term, Fachwort, Fachbegriff, Fachbegriffe, Grundbegriff, Grundbegriffe, Lektion, Lektionen, Bedienungsanleitung, Bedienungsanleitungen, Spezialist, Spezialisten, Coaching, Coach, Fachbuch, technologie, Unterschied zwischen, Unterschiede zwischen, lehren, unterrichten, für das Studium, für Studenten, für Studentinnen, für Studierende, für Schüler, für Schülerinnen, Wie kann ich, Wie kann man, Hilfe, selber, erstellen, Erstellung, Beginner, Online-Seminar, Online-Kurs, Online-Schulung, ich, gebrauchsanweisung, gebrauchsanleitung, Bedienungsanweisung, Einweisung, Kurzinfo, Internet-Kurs, Internet-Kurse, Online-Training, Intensiv, Intensivkurs, Vortragsreihe, Präsentation, Grundzüge, Mitschrift, Mitschriften, Verständnis, verstehen, anwenden, Hintergrundwissen, Hintergrund, Hintergründe, content, Funktionsprinzip, Schritt für Schritt; E-Learning; elearning; online learning; Fernlehre, Fernlehrgang, Fernlehrgänge, Referent, Referenten, Fernkurs, Fernkurse, Fernstudium, Fernschule, Fernuniversität, Fernlehrer, Denken, Qualifizierungsmaßnahme, Qualifizierung, Qualifizierungen, Volkshochschulkurs, Volkshochschulkurse, Internet-Learning-Plattform, Online-Learning-Plattform, E-Learning-Plattform, Internetlearning-Plattform, Onlinelearning-Plattform, Elearning-Plattform, jetzt, Kochbuch, einfach erklärt, Kenntnis, Kenntniss, Kenntnisse, deutsche Hilfe, lernen und verstehen; blended learning; courseware, Profi, Profis, professionell, professionelle, professionelles, profesionell, profesionelle, profesionelles, professionel, gekonnt, für Könner, Grundkurs, Leistungskurs, Aufbaukurs, Lehrtext, Lehrtexte, Fachtext, Fachtexte, Ausarbeitung, distance learning, Online Seminar, distance education, Online Tutorium, Online Tutorien, technology-based learning, Computer based learning, CBL, Internet Based learning, IBL, Web based learning, WBL, online-learning, OL, online-training, OT, CAI, Computer Assisted Instruction, CUU, Computerunterstützter Unterricht, Computer-unterstützter Unterricht, Know how, Grundkenntnis, Grundkenntnisse, Kompetenz, Schulungsunterlagen, Insiderwissen, Rat, Lehrerinnen und Lehrer, ABC, Überblick, Arbeitsblatt, Sekundarstufe, Oberstufe, Material, Materialien, Unterrichtsentwurf, Unterrichtsentwürfe, Lerntip, Lerntips, Lerntipp, Lerntipps, ebook, schnell lernen, Lerner, Lernender, Lernende Erwachsenenbildung, Frage und Antwort, Selbststudium, Selbstudium, Umschulung, , kostenlos, kostenlose, kostenloses, kosten los, kosten lose, kosten loses, gratis, free, frei, freie, freies, privat, private, privates, homepage, home-page, home page, website, web site, webpage, web-page, web page, webpages, web-pages, web pages, webseite, Web-Seite, Webseite, Webseiten, Web-Artikel, Web Artikel, online, on-line, on line, download downloaden, down load, or, deutsch, deutsche, deutsches, deutscher, Deutschland, deutschsprachig, deutschsprachige, deutschsprachiges, german, germany, and, uebersicht, Uerbersicht, uebersichten, Uebersichten, Übersicht, übersicht, Übersichten, übersichten, Uebersicht, uebersicht, Uebersichten, uebersichten, Info, Infos zu, Information über, ueber, Informationen über, Auskunft, Auskünfte, Auskuenfte, Dienst, PbclevtugFgrsnaEnz, Angebot, Angebote, Anbieter, server, für, fuer, in, an, keyword, keywords, key word, keywords, internet, internets, net, network, net work, networks, net works, web, www, world wide web, Theorie, Praxis, Anwendung, DV, IT, glossar, fachwörterbuch it-glossar, computer lexikon, Computerlexikon, Computer-Lexikon, Lexikon, computer lexicon, Computerlexicon, Computer-Lexicon, Lexicon, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 was ist ein, was ist das, was sind, definiere, definition, define, Inhalt, html, xhtml, free im netz, PDF Text, digital, digitale, binär, binäre, elektronisch, elektronische, fachbegriff, fachbegriffe, konzept, Begriff, allgemein, allgemeine, allgemeines, Technik, Datentechnik, Digitaltechnik, Binätechnik, online lesen; , Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd721360, slrprddef721360, PbclevtugFgrsnaEnz Erklärung, Beschreibung, Info, Information, Hinweis,

Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/c_verbundanweisung_de