• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Jak złamać pętlę wewnątrz switcha ?

0 głosów
249 wizyt
pytanie zadane 29 marca 2020 w C i C++ przez RubiN Początkujący (290 p.)
Jak złamać pętlę wewnątrz switcha ? piszę taki program co jest jakby systemem operacyjny , po prostu taki plik exe.

i gdy podprogram .exe i go uruchamiam w jednym oknie to niewiem jak go wyłączyć bo nie umiem zerwać pętli wewnątrz switcha .

2 odpowiedzi

0 głosów
odpowiedź 29 marca 2020 przez tangarr Mędrzec (155,140 p.)
wybrane 29 marca 2020 przez RubiN
 
Najlepsza

Widzę 3 opcje:
- dodatkowa zmienna
- goto
- return

 

// przykład 1 -- dodatkowa zmienna

bool koniec = false;
while(true) {
    int wybor;
    cin >> wybor;
    switch (wybor) {
    case 5:
        koniec = true;
        break;
    }
    if (koniec)
        break;
}

// przykład 2 -- goto

while(true) {
    int wybor;
    cin >> wybor;
    switch (wybor) {
    case 5:
        goto etykieta_za_petla;
    }
}
etykieta_za_petla:
;

// przykład 3 -- return
// w większości przypadków kod należy umieści w osobnej funkcji
// żeby nie zamknąć programu instrukcją return

while(true) {
    int wybor;
    cin >> wybor;
    switch (wybor) {
    case 5:
        return 0;
    }
}

 

0 głosów
odpowiedź 29 marca 2020 przez Sic Dyskutant (8,510 p.)
Mógłbyś pokazać kod ?
komentarz 29 marca 2020 przez RubiN Początkujący (290 p.)
#include <iostream>
#include <conio.h>
#include <windows.h>
#include <cstdio>

using namespace std;

float a,b;
int wybor;


int main()
{

while(true)
{



    cout<<"podaj 1 liczbe: ";cin>>a;
    cout<<"podaj 2 liczbe: ";cin>>b;
    system("cls");
    cout<<" --------------";

    cout<<endl<<"      Menu"<<endl;
    cout<<" --------------"<<endl;
    cout<<"1.Dodawanie"<<endl;
    cout<<"2.Odejmowanie"<<endl;
    cout<<"3.Mnozenie"<<endl;
    cout<<"4.Dzielenie"<<endl;
    cout<<"5.Exit"<<endl<<endl;

wybor=getch();
    switch(wybor)
    {
    case '1':
        system("cls");
        cout<<a+b;getchar();getchar();system("cls");
    break;

        case '2':
        system("cls");
        cout<<a-b;getchar();getchar();system("cls");
    break;

        case '3':
        system("cls");
        cout<<a*b;getchar();getchar();system("cls");
    break;

        case '4':
        system("cls");

        cout<<a/b;
        getchar();getchar();system("cls");

    break;
        case '5':
//no i tutaj nie wiem :(
    break;

    default: system("cls");cout<<"Wrong number";system("cls");break;
    }
}
    return 0;
}

Tak , taki jak z kursu .

komentarz 29 marca 2020 przez Sic Dyskutant (8,510 p.)

Wpisz:

case '5':
exit(0);
break;

Powinno pomóc.

1
komentarz 29 marca 2020 przez DragonCoder Nałogowiec (36,500 p.)
nie, exit nie jest zalecane do konczeniaa programu, robisz return i tyle.

https://stackoverflow.com/questions/25141737/why-is-using-exit-considered-badTu wyjasnienie czemu, exit jest zla praktyka i nie powinnien byc uzywany.

A co do getchar to pragne przypomniej, ze jest to funkcja z api windowsa, wiec kod jest nie przenosny

Podobne pytania

0 głosów
2 odpowiedzi 593 wizyt
pytanie zadane 1 kwietnia 2020 w C i C++ przez Atman Użytkownik (810 p.)
0 głosów
1 odpowiedź 558 wizyt
pytanie zadane 16 listopada 2017 w C i C++ przez kacper1445 Mądrala (5,070 p.)

93,604 zapytań

142,529 odpowiedzi

322,996 komentarzy

63,092 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...