June 29, 2004
![sp_UserOfflineSmall](https://nordichardware.se/wp-content/sp-resources/forum-themes/reboot/images/darkpack/sp_UserOfflineSmall.png)
i den här koden så ska man kunna skriva in 2 tal för att sedan välja vad man vill göra med talen... while satsen ska ordna det så att om man skriver 0 eller mer än 4 när man ska välja vilkn funktion som ska utföras så ska allting börja om från början, men nu händer precis motsvarande sak..
#include
#include
using namespace std;
main()
{
int tal3;
double tal1, tal2, svar, mm;
while (tal3 > 0 && tal3 < 5)
{
cout << "Skriv in ett tal som du sedan kan dela, multiplicera, addera eller supptrahera, med ett annat tal. " << endl;
cout << "tal 1: "; cin >> tal1;
cout << "tal 2: "; cin >> tal2;
cout << "vad vill du göra?" << endl <<
"+ tryck 1." << endl <<
"- tryck 2." << endl <<
"x tryck 3." << endl <<
"/ tryck 4. ";cin >> tal3;
cout << " " << endl;
cout << "=========" << endl;
cout << " " << endl;
if (tal3 == 1)
{
svar = tal1 + tal2;
cout << "Svar: " << svar << endl;
}
else if (tal3 == 2)
{
svar = tal1 - tal2;
cout << "Svar: " << svar << endl;
}
else if (tal3 == 3)
{
svar = tal1 * tal2;
cout << "Svar: " << svar << endl;
}
else if (tal3 == 4)
{
svar = tal1 / tal2;
cout << "Svar: " << svar << endl;
}
else
{
cout << "Aja baja, nu skrev du fel, mellan 1 och 4 ska det va ett tal. " << endl;
}
}
cout << " " << endl;
cout << " " << endl;
cout << " " << endl;
cout << " " << endl;
system("pause");
return 0;
}
???
September 13, 2001
![sp_UserOfflineSmall](https://nordichardware.se/wp-content/sp-resources/forum-themes/reboot/images/darkpack/sp_UserOfflineSmall.png)
Tovedal wrote: nja.. då blir det ingen loop istället...
Den måste vara initierad första gången du kommer till loopen, så du har inte så många val.
Lite tips:
Får jag rekomendera en "switch-sats"., alla dessa if else osv är mycket röriga.
Dessutom gör du samma saker flera gånger, kanske är läge för en funktion. tex
void printAns( double svar ){
cout << "Svar: " << svar << endl;
}
Sätt "int" framför main(), eller ev void och ta bort "return 0".
Bryt upp koden lite, sätt inte flera satser på samma rad.
Din sista else kommer aldrig att inträffa.
Det jag kommer på just nu, kanske orkar kolla lite nogrannare senare.
January 15, 2004
![sp_UserOfflineSmall](https://nordichardware.se/wp-content/sp-resources/forum-themes/reboot/images/darkpack/sp_UserOfflineSmall.png)
Chewie wrote: Din sista else kommer aldrig att inträffa.
Jådo, visst kommer det att inträffa (om man lagar programmet så att den går in i loopen) om man skriver in något tal som är minre än 1 eller större än 4.
Alla test i if-satserna kommer att ge false och man kommer till else-satsen.
June 29, 2004
![sp_UserOfflineSmall](https://nordichardware.se/wp-content/sp-resources/forum-themes/reboot/images/darkpack/sp_UserOfflineSmall.png)
Chewie wrote: [quote=Tovedal]nja.. då blir det ingen loop istället...
Den måste vara initierad första gången du kommer till loopen, så du har inte så många val.
Lite tips:
Får jag rekomendera en "switch-sats"., alla dessa if else osv är mycket röriga.
Dessutom gör du samma saker flera gånger, kanske är läge för en funktion. tex
void printAns( double svar ){
cout << "Svar: " << svar << endl;
}
Sätt "int" framför main(), eller ev void och ta bort "return 0".
Bryt upp koden lite, sätt inte flera satser på samma rad.
Din sista else kommer aldrig att inträffa.
Det jag kommer på just nu, kanske orkar kolla lite nogrannare senare.
okej men faktiskt så har jag inte den blekaste hur jag ska fixa den där switch tjosan, vars ska den stå och vad ska den byta ut???
January 15, 2004
![sp_UserOfflineSmall](https://nordichardware.se/wp-content/sp-resources/forum-themes/reboot/images/darkpack/sp_UserOfflineSmall.png)
Tovedal wrote:
okej men faktiskt så har jag inte den blekaste hur jag ska fixa den där switch tjosan, vars ska den stå och vad ska den byta ut???
byt ut
if (tal3 == 1)
{
svar = tal1 + tal2;
cout << "Svar: " << svar << endl;
}
else if (tal3 == 2)
{
svar = tal1 - tal2;
cout << "Svar: " << svar << endl;
}
else if (tal3 == 3)
{
svar = tal1 * tal2;
cout << "Svar: " << svar << endl;
}
else if (tal3 == 4)
{
svar = tal1 / tal2;
cout << "Svar: " << svar << endl;
}
else
{
cout << "Aja baja, nu skrev du fel, mellan 1 och 4 ska det va ett tal. " << endl;
}
till
switch(tal3)
{
case 1:
svar = tal1 + tal2;
cout << "Svar: " << svar << endl;
break;
case 2:
svar = tal1 - tal2;
cout << "Svar: " << svar << endl;
break;
case 3:
svar = tal1 * tal2;
cout << "Svar: " << svar << endl;
break;
case 4:
svar = tal1 / tal2;
cout << "Svar: " << svar << endl;
break;
default:
cout << "Aja baja, nu skrev du fel, mellan 1 och 4 ska det va ett tal. " << endl;
}
September 13, 2001
![sp_UserOfflineSmall](https://nordichardware.se/wp-content/sp-resources/forum-themes/reboot/images/darkpack/sp_UserOfflineSmall.png)
Liten rekomendation till.
Byt ut
while (tal3 > 0 && tal3 < 5)
Till ngt liknande detta.
bool done = false;
while( !done ){
// switch å allt annat som du ville ha i loopen här.
// för att gå ur loopen kan du ha ett till alternativ (5)
// case 5: done = true; break;
}
Då slipper du initiera tal3, om du nu inte ville detta.
1 Guest(s)
![sp_Information](https://nordichardware.se/wp-content/sp-resources/forum-themes/reboot/images/darkpack/sp_Information.png)