Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2010-07-06 15:43:31

  xomrk - Członek DUG

xomrk
Członek DUG
Zarejestrowany: 2010-03-21

C++ jak kontynuować menu

Witam
spłodziłem coś takiego

Kod:

#include <iostream>
#include <cstring>
#include <stdlib.h>
#include <cstdio> 
#include <ctime> 
#include <cmath> // potęgowanie duperele na liczbach 
using namespace std;

int roc;
int OPCJA;


int main()

{

    cout <<"Co chcesz zwojować : " << endl;
    cout <<"1.Wyświetlic x razy LINUX ROCKS " << endl;
    cout <<"2.Uruchomić radio " << endl;
    cout <<"3.wyjsc" << endl;
    cout <<"4.VNSTAT" << endl;
    
    cin >> ::OPCJA;
    
switch (::OPCJA)

{
case 0: cout << " Dziekujemy : ";
case 1: 
        cout << "Ile razy wypisać" << endl;
    
    cin >> ::roc;
for (int i = 0; i < ::roc;i++)

    cout<<"LINUX ROCKS" << endl;


break;
case 2: system("radio"); break;
case 3: break;
case 4: system("vnstat"); break;
default: cout << "nieznana opcja";
}
}

I za chiny ludowe nie wiem jak zmodyfikowac to aby program nie kończył się po wybraniu jakiejś opcji a dopiero wtedy konczył gdy wybiore opcjie 3

probowałem za i przed funkcja main dać do i na koncu while (::OPCJA == "3") lecz nie dało żadnego rezultatu

Co robie źle ?

pozdrawiam


Linux debian 3.2.0-4-amd64 #1 SMP Debian 3.2.46-1 x86_64 GNU/Linux

Offline

 

#2  2010-07-06 16:19:26

  Huk - Smoleńsk BULWA!

Huk
Smoleńsk BULWA!
Zarejestrowany: 2006-11-08

Re: C++ jak kontynuować menu

Ja bym to zrobił tak:

Kod:

#include <iostream>

int main()
{
    int opcja;
    bool cont=true;
    while(cont)
    {
        std::cout << "Podaj 1,2 lub 3:" << "\n";
        std::cin >> opcja;
        switch(opcja)
        {
            case 1:
                std::cout << "Podales 1" << "\n";
                break;
            case 2:
                std::cout << "Podales 2" << "\n";
                break;
            case 3:
                cont=false;
            default:
                break;
        }
    }
    std::cout << "Poza switchem" << "\n";
    return 0;
}

W sumie to trochę podepnę się pod pytanko bo związane - jak mamy takie coś jak powyżej, to czy da się jakoś (jakimś słowem kluczowym typu continue, break, itp) opuścić while'a, czy po prostu trzeba zawsze stosować coś jak podałem wyżej?

Ostatnio edytowany przez Huk (2010-07-06 16:22:55)

Offline

 

#3  2010-07-06 17:18:36

  sal_i - Członek DUG

sal_i
Członek DUG
Skąd: Neverhood
Zarejestrowany: 2007-01-01

Re: C++ jak kontynuować menu

O ile dobrze zrozumiałem pytanie, to właśnie break służy do przerywania pętli do while, while, for oraz instrukcji switch.

coś jak podałem wyżej

czy chodzi Ci o konstrukcję switch? Jeśli tak, to

Kod:

#include <iostream>

int main()
{
    bool cont=true;
    int licznik = 0;
    while (cont==true)
    {
        ++licznik;
        std::cout << licznik << " przebieg\n";
        if (licznik==10) break;
    }
    std::cout << "break - koniec łajla" << "\n";
    return 0;
}

bez niej break też działa


“Generowanie liczb losowych jest zbyt ważne, żeby zostawiać to przypadkowi”

Offline

 

#4  2010-07-07 10:18:11

  Huk - Smoleńsk BULWA!

Huk
Smoleńsk BULWA!
Zarejestrowany: 2006-11-08

Re: C++ jak kontynuować menu

To że break działa poza switchem to oczywiście wiem ;] - mnie (czy mi? Jakiś polonista może na forum powie która forma poprawna?) chodziło czy istnieje jakaś komenda typu break czy continue która umożliwia wyjście - w przykładzie który podałem - jednocześnie ze switcha ORAZ while'a, a wywołana jest w switchu. Oczywiście "goto" nie biorę pod uwagę ;]

Offline

 

#5  2010-07-07 10:43:43

  sal_i - Członek DUG

sal_i
Członek DUG
Skąd: Neverhood
Zarejestrowany: 2007-01-01

Re: C++ jak kontynuować menu

goto, ale to nieeleganckie


“Generowanie liczb losowych jest zbyt ważne, żeby zostawiać to przypadkowi”

Offline

 

#6  2010-07-08 08:57:10

  bercik - Moderator Mamut

bercik
Moderator Mamut
Skąd: Warszawa
Zarejestrowany: 2006-09-23
Serwis

Re: C++ jak kontynuować menu

jezeli chodzi o konczenie programu to mozesz zrobic:

Kod:

case 3:
      exit(0);

jezeli chodzi o konczenie funkcji to mozesz zrobic return ...


"Wszyscy wiedzą, że czegoś zrobić nie można. Ale przypadkowo znajduje się jakiś nieuk, który tego nie wie. I on właśnie robi odkrycie." (A.Einstein)

Offline

 

#7  2010-07-08 09:10:58

  ippo76 - fakam fszycho

ippo76
fakam fszycho
Zarejestrowany: 2009-02-22
Serwis

Re: C++ jak kontynuować menu

Huk napisał(-a):

.... mnie (czy mi? Jakiś polonista może na forum powie która forma poprawna?)....

Moim zdaniem na początku wypowiedzi mnie, w środku zdania mi, np. Mnie się zdaje ale Wydaje mi się

Sprawdź

Ostatnio edytowany przez ippo76 (2010-07-08 09:11:49)


ippo76@jid.dug.net.pl

Moja składka do ZUS = 2/3, moja składka do OFE = 1/3;
Stan mojego konta w ZUS = 2XYZ, stan konta w OFE = 3XYZ.

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
To nie jest tylko forum, to nasza mała ojczyzna ;-)