Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Problem z warunkiem wielokrotnego wyboru!

Ostatnio zmodyfikowano 2019-02-17 16:11
Autor Wiadomość
newbieguy
Temat założony przez niniejszego użytkownika
Problem z warunkiem wielokrotnego wyboru!
» 2019-02-17 15:39:37
Cześć,otóż chcę użyć operatora logicznego || w instrukcji switch,jednakże nie wiem gdzie popełniam błąd ;/ Wklejam kod,aby lepiej zobrazować problem:
C/C++
#include <iostream>
#include <stdlib.h>
int main()
{
    int x1, y1, z1, zmienna;
    char znak;
    x1 = 1;
    y1 = 2;
    z1 = 3;
    std::cout << "Podaj zmienna:" << std::endl;
    std::cout << "x1=1,y1=2,z1=3" << std::endl;
    std::cin >> zmienna;
    system( "cls" );
    std::cout << "Podaj X,Y lub Z:" << std::endl;
    std::cin >> znak;
    system( "cls" );
    switch( znak )
    {
    case 'X' || 'x':
        std::cout << x1 + zmienna << std::endl;
        break;
    case 'Y' || 'y':
        std::cout << y1 + zmienna << std::endl;
        break;
    case 'Z' || 'z':
        std::cout << z1 + zmienna << std::endl;
        break;
    }
   
    return 0;
}
P-174000
pekfos
» 2019-02-17 16:08:48
Nie da się tak zrobić. Ale: nie każdy case musi mieć break, program po prostu będzie się wykonywać dalej, więc możesz to wykorzystać i zrobić tak:
C/C++
switch( c )
{
case 'a':
case 'A':
    cos;
    break;
   
case 'x':
case 'X':
    cos_innego;
    break;
}
Przy czym wygląda na to, że potrzebujesz tego tylko po to, by wielkość znaków nie miała znaczenia. W takim przypadku najprościej użyć funkcji toupper()/tolower() z <cctype> i sprawdzać tylko jeden rozmiar litery.
C/C++
switch( tolower( c ) )
{
case 'a':
    cos;
    break;
   
case 'x':
    cos_innego;
    break;
}
P-174001
newbieguy
Temat założony przez niniejszego użytkownika
» 2019-02-17 16:11:45
Dzięki za pomoc ;D Uczę się dopiero i nie wiedziałem że tak się da zrobić ;d
P-174002
« 1 »
  Strona 1 z 1