Dwa warunki case w switch

0

hej potrzebuje pomocy proszę, wyskakuje błąd: E1578 wartość etykiety case pojawiła się już w tej instrukcji switch w wierszu 37
tu jest kod:

double cospi3(int n)

{
	switch (n % 6)
	{
	case 0:
		return 1;
		break;
	case 3:
		return -1;
		break;
	case (1 || 5):
		return static_cast<double>(1) / 2;
		break;
		case (2 || 4):
		return static_cast<double>(-1) / 2;
		break;

	}
}

z góry dziękuje <3

5
Rasowa_blondyna napisał(a):
	case (1 || 5):

Gdzie przeyczytałeś o takiej skłądni switch case?
1 || 5 daje wartość true, która jest intrepretowana jako 1.
Ma być raczej:

   case 1:
   case 5:

Zresztą i tak jest to przekombinowane:

double cospi3(unsigned n)
{
    constexpr double results[] { 1.0, 0.5, -0.5, -1.0, -0.5, 0.5 };
    return results[n % 6];
}
0

Nie wiem co to za język, ale masz 0 dwa razy. Raz w case 0:, a drugi braz w case (2 || 4):.</de>

1 || 5 daje wartość true, która jest intrepretowana jako 1.

Chociaż wróć. Jesli 1 || 5 daje wartość true, i 2 || 4 też daje wartość true, to są dwie jedynki, prawda?

Już zapominam że || to or logiczny, a nie binarny XD

1 użytkowników online, w tym zalogowanych: 0, gości: 1