Kezdőoldal » Számítástechnika » Programozás » C# switch probléma?

C# switch probléma?

Figyelt kérdés

Van egy algoritmusom, amiben switchet szeretnék használni, az alábbi módon. A value lehet 300;100 vagy egy random érték 201 és 299 között.


switch (value / 100)

{

case 1:

m.value = 0;

break;

case 2:

m.value = value % 200;

break;

case 3:

m.value = 100;

break;

default:

Console.WriteLine("Error");

break;


}


Ha ezt használom, az algoritmus nem működik. Ha viszont ezt:

m.value = value;


akkor minden tokeletesen mukodik.

A value változóval csak egyszerű összehasonlításokat végzek (<,>).



2018. ápr. 17. 10:20
 1/8 anonim ***** válasza:
41%
debuggold....
2018. ápr. 17. 10:49
Hasznos számodra ez a válasz?
 2/8 A kérdező kommentje:
Párhuzamosan a legkevésbé sem hasznos válaszok olimpiájával.
2018. ápr. 17. 11:59
 3/8 anonim ***** válasza:

Egy fontos dolog, amit megjegyeznék, hogy ha ezen a switchen múlik az m.value inicializálása, és később nem ellenőrzöd akkor a default ágon mindenképpen kezdj vele valamit, vagy dobj egy ArgumentOutOfRangeException-t mert máskülönben lehet, hogy nem tudod lefordítani a programot. Ugye nem derül ki a kérdésedből, hogy pontosan mi a probléma.


"Ha ezt használom, az algoritmus nem működik. Ha viszont ezt:

m.value = value; "

Hol? Melyik sorban? Vagy úgy érted, hogy az egész switch-case helyett? Mert akkor lehet pont az a probléma, amit előbb leírtam.

2018. ápr. 17. 13:11
Hasznos számodra ez a válasz?
 4/8 anonim ***** válasza:
89%

Mit jelent az, hogy "nem működik"? Mi a jelenség, mit tapasztalsz?

Ha a value változó egész típusú, akkor a (value / 100) egész osztás lesz. Ennek fényében ha a value 100, akkor m.value nulla lesz. Ha a value 201 és 299 közötti, akkor az m.value ugye 1 és 99 közötti lesz a modulo miatt. Ha pedig a value 300, akkor az m.value 100 lesz. Összességében tehát az m.value 0 és 100 közötti lesz.


Kérdés, mi az az m és milyen deklarációja van? Ez egy struct? Vagy egy objektum?


Nem írtad le a hiba lényegét, így nehéz segíteni.

2018. ápr. 17. 13:16
Hasznos számodra ez a válasz?
 5/8 A kérdező kommentje:

Probléma megoldodott, köszönöm a válaszokat.


De legalább a pofád ne lenne ekkora hozzá, az isten verjen meg...


Ver folyamatosan az olyan emberekkel, mint te.

2018. ápr. 17. 13:18
 6/8 anonim ***** válasza:
Akkor asszem megint nem tudjuk meg, hogy mi volt a probléma és a megoldás.
2018. ápr. 17. 13:34
Hasznos számodra ez a válasz?
 7/8 anonim ***** válasza:
Szerinten egyértelmű mi a probléma.
2018. ápr. 17. 14:45
Hasznos számodra ez a válasz?
 8/8 anonim ***** válasza:
Igen. Az, hogy még mindig látogatom ezt az oldalt.
2018. ápr. 17. 14:57
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!