WASD Skrivet 7 Februari 2012 Rapport Skrivet 7 Februari 2012 Ja du kan hoppa ur loopen på det sättet. Det som du kanske vill göra är att skriva ut "meny" en gång. Och sedan låta while(true) ta emot input tills man säger stopp. Då skrivs bara meny ut en gång. Citera
5FJSKFJSKGJES Skrivet 7 Februari 2012 Författare Rapport Skrivet 7 Februari 2012 #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)? :) Citera
WASD Skrivet 7 Februari 2012 Rapport Skrivet 7 Februari 2012 Ja det ser väl bra ut. Funkar det bra? Citera
Vitdom Skrivet 7 Februari 2012 Rapport Skrivet 7 Februari 2012 (redigerat) 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 8 Februari 2012 av Vitdom Citera
Rekommendera inlägg
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.