Som besökare på Hamsterpaj samtycker du till användandet av s.k. cookies för att förbättra din upplevelse hos oss. Jag förstår, ta bort denna ruta!
Annons

C++ switch

Skapad av Borttagen, 2011-03-06 13:08 i Webbutveckling & Programmering

1 913
11 inlägg
0 poäng
anonym215
Visningsbild
P 28 Katthammarsvik Hjälte 1 984 inlägg
0
tja, har ju precis börjat med c++ så skulle vara tacksam för en förklaring på det här:

jag har typ gjort en bankkomatprogram eller nåt liknande men jag har lyckats med att fixa allt utom en sak:

men hom andvändaren skriver in fel en fel sedel, typ 49. då andvänder man ju default för att frågan ska komma om igen tills man skriver rätt. så jag undrar hur man gör då?

koden:
Visa spoiler
# include <iostream>
using namespace std;
int main(){

int bank=1000;
int sedel=0;

cout << " You got 1000 $ at your account " << endl << endl;
cout << " Please, enter how much money you wan´t to insert " << endl << endl;
cin >> sedel;

while (sedel != 50 || 100 || 500 || 1000)
switch(sedel)
{
case 50:
cout << " You have insert 50 " << endl << endl;
bank += 50;
break;
case 100:
cout << " You have insert 100 " << endl << endl;
bank += 100;
break;

case 500:
cout << " You have insert 500 " << endl << endl;
bank += 500;
break;
case 1000:
cout << " You have insert 1000 " << endl << endl;
bank += 1000;
break;

default:
cout << " You have insert a invalid sum " << " please try again " << endl << endl;
cout << " You still got " << bank << " at your account " << endl << endl;
}


cout << " know you got " << bank << " at your account " << endl << endl;





system("pause");
return 0;
}

lol

Är reklamen ivägen? Logga in eller registrera dig så försvinner den!

Gaxnys
Visningsbild
P 30 Malmö Hjälte 322 inlägg
0
Svar till anonym215 [Gå till post]:
För det första, "while (sedel != 50 || 100 || 500 || 1000)" är väl ganska onödigt om du ändå ska switcha sedel? Vad den gör är att hoppa över switch om det är en giltlig sedel.

Sen förstår jag inte varför du ens har en switch, är väl lika bra att ha en if...else, som skriver ut hur mycket som satts in om det är ett giltligt tal, och annars skriver att talet är ogiltligt?

Och om du vill att koden ska köras tills personen skrivit rätt så är det bara att lägga det i en loop.

http://iceflaw.nu/labyrint/ Solve it, I dare you!

anonym215
Visningsbild
P 28 Katthammarsvik Hjälte 1 984 inlägg
Trådskapare
0

Svar till Gaxnys [Gå till post]:
som sagt jag är nybörjare och går efter guiderna på http://www.läxa.nu men..


Och om du vill att koden ska köras tills personen skrivit rätt så är det bara att lägga det i en loop.


Det var det jag ville vet hur man gör :)


lol

Gaxnys
Visningsbild
P 30 Malmö Hjälte 322 inlägg
0
Visa spoiler

# include <iostream>
using namespace std;
int main(){

int bank=1000;
int sedel=0;
int end=0;

cout << " You got 1000 $ at your account " << endl << endl;

while(end == 0) {

cout << " Please, enter how much money you wan´t to insert " << endl << endl;
cin >> sedel;

while (sedel != 50 || 100 || 500 || 1000)
switch(sedel)
{
case 50:
cout << " You have insert 50 " << endl << endl;
bank += 50;
break;
case 100:
cout << " You have insert 100 " << endl << endl;
bank += 100;
break;

case 500:
cout << " You have insert 500 " << endl << endl;
bank += 500;
break;
case 1000:
cout << " You have insert 1000 " << endl << endl;
bank += 1000;
break;

default:
cout << " You have insert a invalid sum " << " please try again " << endl << endl;
cout << " You still got " << bank << " at your account " << endl << endl;
}


cout << " know you got " << bank << " at your account " << endl << endl;

}



system("pause");
return 0;
}

Och sen om du vill att loopen ska brytas så ändrar du end till något annat än noll.

http://iceflaw.nu/labyrint/ Solve it, I dare you!

anonym215
Visningsbild
P 28 Katthammarsvik Hjälte 1 984 inlägg
Trådskapare
0

Svar till Gaxnys [Gå till post]:
ok ty!

lol

Bipshark
Visningsbild
P 31 Lindome Hjälte 88 inlägg
0
Jag kan inte C++ men just detta...
Ett stycke php-kod:
while (sedel != 50 || 100 || 500 || 1000)

borde inte det skrivas?
Ett stycke php-kod:
while (sedel != 50 || sedel != 100 || sedel != 500 || sedel != 1000(


Eller har C++ någon finess jag missat? :D
robbalainen
Visningsbild
P Hjälte 828 inlägg
0

Svar till anonym215 [Gå till post]:
Något såhär kanske?

Ett stycke C#-kod:

#include <iostream>
using namespace std;
int main()
{
int bank = 1000; int sedel = 0;

cout << " You have 1000$ on your account " << endl << endl;
cout << " Please, enter how much money you want to deposit (0 to exit)" << endl << endl;
cin >> sedel;

while (true)
{
if (sedel == 50){
cout << " You have deposited 50 " << endl << endl;
bank += 50;
sedel = 0;
}
else if (sedel == 100){
cout << " You have deposited 100 " << endl << endl;
bank += 100;
sedel = 0;
}
else if (sedel == 500){
cout << " You have deposited 500 " << endl << endl;
bank += 500;
sedel = 0;
}
else if (sedel == 1000){
cout << " You have deposited a 1000 " << endl << endl;
bank += 1000;
sedel = 0;
}
else if (sedel == 0){
break;
}
else{
cout << " You have deposited an invalid sum, please try again" << endl
<< "You still have " << bank << " on your account " << endl << endl;
}

}
//cout << "You know you have " << bank << " on your account " << endl << endl;

system("pause");
return 0;
}



Funkar om du bara vill köra koden en gång. Vill du däremot köra den fler gånger får du använda en markör (-1 kanske, då jag själv använt 0) :)



Tillägg av robbalainen 2011-03-06 14:21

Eller flytta in
cout << " Please, enter how much money you want to deposit (0 to exit)" << endl << endl;
cin >> sedel;

innanför while :]

Ich ist eine Tore!

anonym215
Visningsbild
P 28 Katthammarsvik Hjälte 1 984 inlägg
Trådskapare
0

Svar till robbalainen [Gå till post]:

Bipshark:3604064:
okeej ty! :)



lol

Bipshark
Visningsbild
P 31 Lindome Hjälte 88 inlägg
0

Svar till anonym215 [Gå till post]:
Alltså jag vet inte xD Jag frågade er :)

anonym215
Visningsbild
P 28 Katthammarsvik Hjälte 1 984 inlägg
Trådskapare
0

Svar till Bipshark [Gå till post]:
aha oj :P :)

lol

cower
Visningsbild
P 44 Lund Hjälte 1 042 inlägg
0
Svar till anonym215 [Gå till post]:
"sedel != 50 || 100 || 500 || 1000" är likvärdigt med "sedel != 50 || true || true || true" - dvs det är alltid sant.

Det där robbalainen skrev blir rätt svårt att följa. Jag skulle föreslå att du först har en while loop medans det är en ogiltig sedel och ber om ny sedel (inkl. inmatning) i kroppen på den loopen. Efter loopen kan du sen ha switchsatsen.


Forum » Datorer & IT » Webbutveckling & Programmering » C++ switch

Ansvariga ordningsvakter:

Användare som läser i den här tråden just nu

1 utloggad

Skriv ett nytt inlägg

Hej! Innan du skriver om ett potentiellt problem så vill vi påminna dig om att du faktiskt inte är ensam. Du är inte onormal och världen kommer inte att gå under, vi lovar! Så slappna av och gilla livet i några minuter - känns det fortfarande hemskt? Skriv gärna ner dina tankar och frågor, vi älskar att hjälpa just dig!

Den här tråden är äldre än Rojks drömtjej!

Det senaste inlägget i den här tråden skrevs för över tre månader sedan. Är du säker på att du vill återuppliva diskussionen? Har du något vettigt att tillföra eller passar din fråga i en ny tråd? Onödiga återupplivningar kommer att låsas så tänk efter en extra gång!

Hjälp

Det här är en hjälpruta

Här får du korta tips och förklaringar om forumet. Välj kapitel i rullningslisten här ovanför.

Rutan uppdateras automagiskt

När du använder funktioner i forumet så visas bra tips här.


Annons
Annons
Annons
Annons