Rheinwerk Computing < openbook > Rheinwerk Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Vorwort
Vorwort des Gutachters
1 Einstieg in C
2 Das erste Programm
3 Grundlagen
4 Formatierte Ein-/Ausgabe mit »scanf()« und »printf()«
5 Basisdatentypen
6 Operatoren
7 Typumwandlung
8 Kontrollstrukturen
9 Funktionen
10 Präprozessor-Direktiven
11 Arrays
12 Zeiger (Pointer)
13 Kommandozeilenargumente
14 Dynamische Speicherverwaltung
15 Strukturen
16 Ein-/Ausgabe-Funktionen
17 Attribute von Dateien und das Arbeiten mit Verzeichnissen (nicht ANSI C)
18 Arbeiten mit variabel langen Argumentlisten – <stdarg.h>
19 Zeitroutinen
20 Weitere Headerdateien und ihre Funktionen (ANSI C)
21 Dynamische Datenstrukturen
22 Algorithmen
23 CGI mit C
24 MySQL und C
25 Netzwerkprogrammierung und Cross–Plattform-Entwicklung
26 Paralleles Rechnen
27 Sicheres Programmieren
28 Wie geht’s jetzt weiter?
A Operatoren
B Die C-Standard-Bibliothek
Stichwort

Buch bestellen
Ihre Meinung?

Spacer
<< zurück
C von A bis Z von Jürgen Wolf
Das umfassende Handbuch
Buch: C von A bis Z

C von A bis Z
3., aktualisierte und erweiterte Auflage, geb., mit CD und Referenzkarte
1.190 S., 39,90 Euro
Rheinwerk Computing
ISBN 978-3-8362-1411-7
Pfeil 8 Kontrollstrukturen
Pfeil 8.1 Verzweigungen mit der »if«-Bedingung
Pfeil 8.1.1 Anweisungsblock
Pfeil 8.2 Die Verzweigung mit »else if«
Pfeil 8.3 Die Verzweigung mit »else«
Pfeil 8.4 Der !-Operator (logischer Operator)
Pfeil 8.5 Logisches UND (&&) – logisches ODER (||)
Pfeil 8.6 Der Bedingungsoperator »?:«
Pfeil 8.7 Fallunterscheidung: die »switch«-Verzweigung
Pfeil 8.7.1 default
Pfeil 8.8 Die »while«-Schleife
Pfeil 8.8.1 Endlosschleife (»while«)
Pfeil 8.8.2 Fehlervermeidung bei »while«-Schleifen
Pfeil 8.9 Die »do while«-Schleife
Pfeil 8.10 Die »for«-Schleife
Pfeil 8.10.1 Einsatzmöglichkeiten der »for«-Schleife
Pfeil 8.11 Kontrollierte Sprünge
Pfeil 8.11.1 continue
Pfeil 8.11.2 break
Pfeil 8.12 Direkte Sprünge mit »goto«
Pfeil 8.13 Notationsstil
Pfeil 8.13.1 K&R-Stil
Pfeil 8.13.2 Whitesmith-Stil
Pfeil 8.13.3 Allman-Stil
Pfeil 8.13.4 GNU EMACS-Stil
Pfeil 8.13.5 Der Stil des Autors ;) (K&R-like)


Rheinwerk Computing - Zum Seitenanfang

8.4 Der !-Operator (logischer Operator) topZur vorigen Überschrift

Den logischen !-Operator (NOT-Operator) haben Sie eben schon kennengelernt. Dieser Operator wird oft falsch verstanden, weswegen ihm ein eigenes Kapitel gewidmet ist. Der !-Operator ist ein unärer Operator und kann einen Wert bzw. eine Bedingung negieren. Dies bedeutet, er kann aus »wahr« »falsch« machen und umgekehrt. Dazu ein Programmbeispiel:

/* logic_not1.c */
#include <stdio.h>

int main(void) {
   int checknummer;

   printf("Bitte geben Sie Ihren Code-Schlüssel ein: ");
   scanf("%d", &checknummer);

   if( ! (checknummer == 4711) ) {
      printf("Error - Falscher Code-Schlüssel \n");
   }
   else {
      printf("Success -  Login erfolgreich \n");
    }
   return 0;
}

Zur Erklärung der if-Bedingung im Programm:

if( !(checknummer == 4711) )

Hier wird der Ausdruck zwischen den Klammern geprüft. Das bedeutet, der !–Operator überprüft den Wert in der Klammer und gibt 1 (wahr) zurück, falls der Wert in der Klammer nicht 4711 ist. Ist der Wert aber gleich 4711, dann wird 0 (falsch) zurückgegeben. Das Programm fährt daraufhin mit der else-Verzweigung fort und gibt aus, dass Sie die richtige Zahl eingegeben haben.

Tabelle 8.2 zeigt die verschiedenen Verwendungsmöglichkeiten.


Tabelle 8.2 Darstellung von Wahrheitswerten

Anweisung == Anweisung
if(a != 0)

gleich

if(a)
if(a == 0)

gleich

if(!a)
if(a > b)

gleich

if(! (a <= b) )
if( (a-b) == 0)

gleich

if(! (a-b) )

Hier sehen Sie ein weiteres Programmbeispiel zur Verdeutlichung:

/* logic_not2.c */
#include <stdio.h>


int main(void) {
   int zahl1, zahl2;

   printf("Bitte Zahl 1 eingeben: ");
   scanf("%d", &zahl1);
   printf("Bitte Zahl 2 eingeben: ");
   scanf("%d", &zahl2);

   if(!zahl1)
      printf("Error: Der Wert ist gleich 0!! \n");
   else if(!zahl2)
      printf("Error: Der Wert ist gleich 0!! \n");
   else
      printf("%d/%d = %f \n", zahl1, zahl2, (float) zahl1/zahl2);
   return 0;
}

Sie vermeiden mit diesem Programm eine Division durch 0. Sollte also keine der beiden Zahlen dem Wert 0 entsprechen, wird mit (float) zahl1/zahl2 eine Division durchgeführt. Sie verwenden hier ein explizites Type-Casting, damit der Wert nach dem Komma nicht einfach abgeschnitten wird.


Hinweis

Als alternative Schreibweise für den logischen !-Operator können Sie seit dem C99-Standard auch das Makro not verwenden, das in der Headerdatei <iso646.h> definiert ist. Die Schreibweise if( !a ) entspricht somit exakt if( not a ).




Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen. >> Zum Feedback-Formular
<< zurück
  
  Zum Katalog
Zum Katalog: C von A bis Z

 C von A bis Z
Jetzt bestellen


 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: C/C++






 C/C++


Zum Katalog: Einstieg in C






 Einstieg in C


Zum Katalog: Schrödinger programmiert C++






 Schrödinger
 programmiert C++


Zum Katalog: C++ Handbuch






 C++ Handbuch


Zum Katalog: IT-Handbuch für Fachinformatiker






 IT-Handbuch für
 Fachinformatiker


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Rheinwerk Verlag GmbH 2009
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Rheinwerk Computing]

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de