C++: mehere If bedingungen und sprunganweisung?

kas

Obermaat
Thread Starter
Mitglied seit
28.06.2006
Beiträge
397
Ort
Berlin-Wedding
im folgenden quellcode (beispiel) möchte ich bestimmte dinge realisieren bzw. wissen wie man es prinzipiell macht, aber ich weiss im moment jdenfalls nicht wie ich das umsetzten kann/soll.

Code:
#include "stdafx.h"
#include <iostream>
#include <stdlib.h>

using namespace std;

long main()
{
	short auswahl;
	cout<<"Bitte wählen:"<<endl;
	cout<<"1. Dose"<<endl;
	cout<<"2. Holz"<<endl;
	cout<<"3. Sahne"<<endl;
	cout<<"4. Kleid"<<endl;

	cin>>auswahl;

	if(auswahl<1) { //Wie sagt man der IF Anweisung, dass auch Eingaben größer 4 abgefangen werden? Also mehrere IF-bedingungen gleichzeitig?
		cout<<"Bitte prüfen Sie Ihre Auswahl!"<<endl;
		//Ab hier soll das Programm von vorne beginnen bzw. an eine bestimmten Stelle springen!
	}//if
	else{

	switch (auswahl) {
		case 1:
			cout<<"Dose"<<endl;
			break;
		case 2:
			cout<<"Holz"<<endl;
			break;
		case 3:
			cout<<"Sahne"<<endl;
			break;
		case 4:
			cout<<"Kleid"<<endl;
			break;
		}//switch
	}//else
	return 0;
}
anhand der kommentare auf mittlerer höhe ist zu erkennn was mir an den entsprechenden stellen fehlt. hat jemand ne idee?

danke schonma!
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
if (auswahl < 1 || auswahl > 4)
|| für oder
&& für und
so ist es zumindest in c
 
Code:
#include <cstdlib>
#include <iostream>
using namespace std;

int auswahl;
int fauswahl(){
    cout<<"Bitte wählen:"<<endl;
    cout<<"1. Dose"<<endl;
    cout<<"2. Holz"<<endl;
    cout<<"3. Sahne"<<endl;
    cout<<"4. Kleid"<<endl;

    cin>>auswahl;
     return auswahl;
}

int main()
{
    auswahl = fauswahl();
    while((auswahl < 1) || (auswahl > 4)){ 
        //Wie sagt man der IF Anweisung, dass auch Eingaben größer 4 abgefangen werden? Also mehrere IF-bedingungen gleichzeitig?
        cout<<"Bitte prüfen Sie Ihre Auswahl!"<<endl;
        fauswahl();
    }
        switch (auswahl) {
            case 1:
                cout<<"Dose"<<endl;
                break;
            case 2:
                cout<<"Holz"<<endl;
                break;
            case 3:
                cout<<"Sahne"<<endl;
                break;
            case 4:
                cout<<"Kleid"<<endl;
                break;
            }
    system("PAUSE");
    return 0;
}
so funzt es ;)
 
Fast. Du hast beim zweiten Funktionsaufruf, von fauswahl, vergessen den Rueckgabewert wieder der Variable auswahl zuzuweisen. ;)
Code:
#include <cstdlib>
#include <iostream>
using namespace std;

int auswahl;

int fauswahl() {
    cout<<"Bitte wählen:"<<endl;
    cout<<"1. Dose"<<endl;
    cout<<"2. Holz"<<endl;
    cout<<"3. Sahne"<<endl;
    cout<<"4. Kleid"<<endl;

    cin>>auswahl;
    
    return auswahl;
}

int main() {
    for(auswahl = fauswahl(); (auswahl < 1) || (auswahl > 4); auswahl = fauswahl()) { 
        //I prefer for loops. :P
        cout<<"Bitte prüfen Sie Ihre Auswahl!"<<endl;
    }

    switch (auswahl) {
        case 1:
            cout<<"Dose"<<endl;
            break;
        case 2:
            cout<<"Holz"<<endl;
            break;
        case 3:
            cout<<"Sahne"<<endl;
            break;
        case 4:
            cout<<"Kleid"<<endl;
            break;
     }

    system("PAUSE");
    return 0;
}
 
funzt wunderbar! danke!

an eine schleife hatte ich erstmal garnicht gedacht.
ich dachte mir schon, dass ich da mit logischen verknüpfungen arbeiten muss, kannte nur die symbole nicht mehr.

NICHT ist "!", aber wie war das mit XOR und XNOR?
 
Zuletzt bearbeitet:
XOR und XNOR gibbet in c++ nicht du müsstest dann ein:
Code:
 (a && !b) || (!a && b)
oder 
!((a && !b) || (!a && b))

verwenden
 
hab ich mir auch fast gedacht, dass man sich das zusammenbauen muss.
naja, letzendlich sind ja die gatter in der digitaltechnik auch nur aus den grundelementen zusammengebaut.

danke nochmal!
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh