Hoppa till innehåll

C++ Meny


5FJSKFJSKGJES
 Dela

Rekommendera inlägg

#include <iostream>

using namespace std;

void addition();
void subtraktion();
int main()
{
int val;
cout << "1. addition 2. subtraktion" << endl;

while(true)
{
cin >> val;
if(!val) break; 

switch(val)
{
case 1: addition();
case 2: subtraktion();

}
}
}

void addition()
{
int tal1, tal2, svar;
cout << "Skriv in dina tal för att räkna ut!" << endl;
cin >> tal1;
cout << "+" << endl;
cin >> tal2;

svar=tal1+tal2;

cout << svar << endl;


}



void subtraktion()
{ 
int tal1, tal2, svar;
cout << "Skriv in dina tal för att räkna ut!" << endl;
cin >> tal1;
cout << "-" << endl;
cin >> tal2;

svar=tal1-tal2;

cout << svar << endl;

}

 

Är det bra (bättre)? :)

Länk till kommentar
Dela på andra sajter

Då kan man alltså hoppa ur en loop genom att skriva in detta i loopen?

if (tjabba<20){break;}

 

Om man alltså ökar "tjabba" med något tal för varje gång, då kommer den hoppa ur loopen då?

Nu är väl detta en omväg, men jag bara undrar.

Ja, precis. Men det är ingen omväg, det är ett bra sätt att lösa det. Det har att göra med hur C++-koden kompileras till Assembler för att sedan assembleras och länkas. Dagens kompilatorer är så smarta att ingen prestandaförsämring kommer att ske med detta sätt jämfört med om man skulle implementera villkoret i ett while-uttryck, t.ex.: while(tjabba >= 20){...}

 

Men om du är en av dem idioter som kollat någon C++-guide på internet som rekommenderar en utvecklingsmiljö kallad "Dev-C++", som standardutgåva använder sig utav en idag kanske 8 eller 9 år föråldrad C++-kompilator, ja då kanske det uppstår en prestandaförsämring. Kanske 33% av alla nybörjare jag mött av C++ är dumma nog att använda Dev-C++ och sedan be om hjälp av andra.

 

Är det bra (bättre)? :)
Nja, det enda som verkar fel är att du inte hoppar ur switch-slingan efter ett switch-hopp som jag pratade om. Detta leder till att om det första fallet nås så kommer även det andra fallet att exekveras.

 

switch(val)
{
case 1: addition();
case 2: subtraktion();
}

Gör så här att du lägger till en break-instruktion efter varje fall för att hoppa ur switch-slingan efter att alla instruktioner i fallet har exekverats:

switch(val)
{
case 1: addition();
break; // Annars exekveras även subtraktion(); efter addition();
case 2: subtraktion();
break; // Behövs egentligen inte, men vissa väljer att skriva denna ändå
}

Redigerat av Vitdom
Länk till kommentar
Dela på andra sajter

Gå med i konversationen

Du kan skriva nu och registrera dig senare. Om du har ett konto, logga in nu för att posta med ditt konto.

Gäst
Svara på det här ämnet...

×   Klistrade in som rich text.   Klistra in som vanlig text istället

  Endast 75 emojis är tillåtet.

×   Din länk har automatiskt inbäddats.   Visa som en länk istället

×   Ditt tidigare innehåll har återställts.   Rensa redigeraren

×   Du kan inte klistra in bilder direkt. Ladda upp eller infoga bilder från URL.

 Dela

×
  • Skapa ny...