![]() |
![]() |
|
![]() |
![]() |
|
Registrieren | Hilfe/Forumregeln | Benutzerliste | Kalender | Suchen | Heutige Beiträge | Alle Foren als gelesen markieren |
Programmierung Rat & Tat für Programmierer |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#11 |
Inventar
![]() Registriert seit: 24.01.2001
Beiträge: 5.631
|
![]() Ein default Zweig ist nicht zwingend notwendig, es geht ja nur um das Ausrechnen eines Wertes. Außerdem ist die switch Anweisung im else Zweig einer if(Bedingung==true) Konstruktion eingebettet. Insofern ist dort der default Zweig realisiert ...
|
![]() |
![]() |
![]() |
#12 |
Inventar
![]() Registriert seit: 15.06.2000
Beiträge: 2.833
|
![]() habs jetzt mit einer if-abfrage probiert
für mich wärs logisch, aber es geht nicht - sobald ich was anderes als m oder w eingeb, wird aus dem programm ausgestiegen Code:
#include <stdio.h> #include <conio.h> void main () { clrscr(); printf("Sind Sie (m)„nnlich oder (w)eiblich?\n"); int kg,kgw; char ge; ge=getchar(); if(ge!='m' && ge!='w') { printf("\nSie haben eine falsche Eingabe gemacht!"); } else { printf("\nGeben Sie bitte Ihre K”rpergr”áe in Zentimeter ein:\n"); scanf("%d",&kg); switch(ge) { case 'm': kgw=(kg-100)*0.9; break; case 'w': kgw=(kg-100)*0.85; break; } printf("\n\nIhr Idealgewicht ist "); printf("%d",kgw); printf("kg."); getch(); } } |
![]() |
![]() |
![]() |
#13 |
Inventar
![]() Registriert seit: 24.01.2001
Beiträge: 5.631
|
![]() Ohne erneute Möglichkeit zur - dann korrekten - Eingabe wird das Programm eben weiter ausgeführt. In diesem Fall gibt es eben keine weiteren Befehle nach dem if-Befehl und deswegen wird das Programm beendet.
Verwende eine Schleife um die if() else Konstruktion und ein break; im else Zweig. Code:
for( ; ; ) { key= getch(); if(key!='m' && key!='M' && key!='w' && key!='W') printf(...); else { scanf(...); switch(key) { ... } break; } } |
![]() |
![]() |
![]() |
#14 |
Inventar
![]() Registriert seit: 15.06.2000
Beiträge: 2.833
|
![]() ah, es geht schon
der fehler war, dass das getch(); im else-zweig war ![]() |
![]() |
![]() |
![]() |
#15 |
Inventar
![]() Registriert seit: 15.06.2000
Beiträge: 2.833
|
![]() eine frage hab ich noch
wie bring kann ich das programm dazu bringen, nach der ausgabe ("ihr idealgewicht ist ...") nicht zu schliessen, sondern durch einen tastendruck nochmal von vorn anzufangen (eingabe von geschlecht usw.)? |
![]() |
![]() |
![]() |
#16 |
Inventar
![]() Registriert seit: 24.01.2001
Beiträge: 5.631
|
![]() Lösung steht oben, eine for Schleife verwenden.
|
![]() |
![]() |
![]() |
#17 | |
Inventar
![]() |
![]() Zitat:
Code:
printf...; getch();
____________________________________
\"Ein Gewitter reinigt die Luft\", sagte der Mann, nachdem ein Blitz seine Frau erschlug Nicht klicken! Erstposteralarm/Beschwerde/Kummerkasten Verplattet |
|
![]() |
![]() |
![]() |
#18 |
Inventar
![]() Registriert seit: 15.06.2000
Beiträge: 2.833
|
![]() hm, hab noch eine frage
![]() ich will eine aktion ausführen, wenn die eingegebene zahl im bestimmten zahlenbereich ist beispiel: wenn die eingegebene zahl im zahlenbereich 10-20 ist, dann den text "blablabla" ausgeben geht das nur mit if oder auch mit switch/case? habs mit switch/case probiert, aber leider dürften da < und > nicht gehen ![]() |
![]() |
![]() |
![]() |
#19 |
Aussteiger
![]() |
![]() bei switch/case kannst du nur exakte werte abfragen ... wertebereich gehen nur mit if ...
____________________________________
Praktizierender Eristiker No hace falta ser un genio para saber quién dijo eso. Der wirklich faule Mensch ist oft extrem fleißig, denn er will möglichst schnell wieder faul sein. |
![]() |
![]() |
![]() |
#20 |
Inventar
![]() Registriert seit: 15.06.2000
Beiträge: 2.833
|
![]() ok, thx
|
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
Themen-Optionen | |
Ansicht | |
|
|