- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
int32 chance;
if (SkillValue <= 115)
{
chance = 100;
}
else if (SkillValue > 115 && SkillValue <= 150)
{
chance = 50;
}
else if (SkillValue > 150 && SkillValue <= 170)
{
chance = 33,33;
}
else if (SkillValue > 170 && SkillValue <= 190)
{
chance = 25;
}
else if (SkillValue > 190 && SkillValue <= 215)
{
chance = 20;
}
else if (SkillValue > 215 && SkillValue <= 235)
{
chance = 16,67;
}
else if (SkillValue > 235 && SkillValue <= 260)
{
chance = 14,29;
}
else if (SkillValue > 260 && SkillValue <= 280)
{
chance = 12,5;
}
else if (SkillValue > 280 && SkillValue <= 325)
{
chance = 11,11;
}
else if (SkillValue > 325 && SkillValue <= 365)
{
chance = 10;
}
else if (SkillValue > 365 && SkillValue <= 450)
{
chance = 9,09;
}
else if (SkillValue > 450 && SkillValue <= 500)
{
chance = 11,11;
}
else if (SkillValue > 500)
{
chance = 10;
}
Ну, проверьте код тогда и RTFM не забывайте.
В исходном ГК ошибка будет только в 55 строке из-за интерпретации восьмеричного числа.
Надо было сразу запостить пояснение.
P.s. а пояснения всегда приветствуются.
То есть 67 — это не дробная часть, а висящее выражение.
Точно так же можно вместо писать
Заголовок оператора for уже никто не помнит? интерпретируется как
Нихрена ж не так. Вот пруф из талмуда.
5.18/1
The type and value of the result are the type and value of the RIGHT operand;
То есть chance будет равен 67, а никак не 16. Учим матчасть, в общем....
http://codepad.org/2lweGZtT
При его применении нет разницы между:
66.7 и 66.07.
А распределение то дискретное ;)
ИМХО, если закрыть глаза на запятые, тут больше case будет уместен, по производительности.
Но тогда будут лишние проверки. Поэтому рациональнее так:
То есть пользуясь только неравенствами в одну сторону: либо все «меньше», либо все «больше». Тогда и конъюнкция не нужна.
Хотя вообще тут можно было свернуть, используя цикл и массив либо формулу.
Волшебное слово else уже отсекает часть условий, поэтому дублирование не нужно.