Нельзя. Ты сравниваешь 1 или 0 от "10 <= i" с "<= 20".Или можно проще.
PHP:if (10 <= i <= 20) { //write code here; }
<cut>@fl0wer, кыш отсюда, умник! Ему всё правильно написали
Только вместо '<=' должно быть просто '<':т.е. крайние значения проверке не должны соответствоватьPHP:переданное значение стоит между ними
// Моя проверка на интервал
0xb88: load.s.alt 0xfffffffc ; i
0xb90: sleq
0xb94: push.pri
0xb98: const.pri 0x14 ; 20
0xba0: sgeq
0xba4: pop.alt
0xba8: and
0xbac: jzer 0xbcc ; +0x20
0xbb4: break
// Пример из темы Kailo, адаптированный под мой пример
0xbe8: load.s.pri 0xfffffffc ; i
0xbf0: const.alt 0xa ; 10
0xbf8: and
0xbfc: const.alt 0x14 ; 20
0xc04: xchg
0xc08: sgeq
0xc0c: push.pri
0xc10: load.s.pri 0xfffffffc ; i
0xc18: sgrtr
0xc1c: pop.alt
0xc20: and
0xc24: jzer 0xc44 ; +0x20
Целиком и полностью согласен.
Я опирался на опыт плюсах. Кто же знал, что в закосе под плюсы сделают это условие по-другому.@fl0wer, не удержался зачекать.
Lysis выдал именно то, что я вписал:
Посмотреть вложение 29792
Специально вдобавок зачекал опкод, который сгенерировал с интервалом, и вручную написанная та же проверка, что и в теме у Кайло.
И что-то оно даже близко не совпадает:
Так что Вы обладаете, скорее всего, устаревшей или непроверенной информацией.C-подобный:// Моя проверка на интервал 0xb88: load.s.alt 0xfffffffc ; i 0xb90: sleq 0xb94: push.pri 0xb98: const.pri 0x14 ; 20 0xba0: sgeq 0xba4: pop.alt 0xba8: and 0xbac: jzer 0xbcc ; +0x20 0xbb4: break // Пример из темы Kailo, адаптированный под мой пример 0xbe8: load.s.pri 0xfffffffc ; i 0xbf0: const.alt 0xa ; 10 0xbf8: and 0xbfc: const.alt 0x14 ; 20 0xc04: xchg 0xc08: sgeq 0xc0c: push.pri 0xc10: load.s.pri 0xfffffffc ; i 0xc18: sgrtr 0xc1c: pop.alt 0xc20: and 0xc24: jzer 0xc44 ; +0x20
#include < sourcemod >
/*
Test 1
10 <= 9 <= 20 | false
10 <= 10 <= 20 | true
10 <= 20 <= 20 | true
10 <= 21 <= 20 | false
Test 2
9 >= 10 && 9 <= 20 | false
10 >= 10 && 10 <= 20 | true
20 >= 10 && 20 <= 20 | true
21 >= 10 && 21 <= 20 | false
Test 3
(10 <= 9) <= 20 | true
(10 <= 10) <= 20 | true
(10 <= 20) <= 20 | true
(10 <= 21) <= 20 | true
*/
public OnPluginStart( )
{
for( int i = 1; i <= 3; i++ )
{
PrintToServer( "Test %d", i );
for( int j = 9; j <= 21; j++ )
{
switch( j )
{
case 9, 10, 20, 21: { }
default:
continue;
}
switch( i )
{
case 1: PrintToServer( "10 <= %d <= 20 | %s", j, 10 <= j <= 20 ? "true" : "false" );
case 2: PrintToServer( "%d >= 10 && %d <= 20 | %s", j, j, j >= 10 && j <= 20 ? "true" : "false" );
case 3: PrintToServer( "(10 <= %d) <= 20 | %s", j, ( 10 <= j ) <= 20 ? "true" : "false" );
}
}
}
}
#include <iostream>
#include <string>
/*
Test 1
10 <= 9 <= 20 | true
10 <= 10 <= 20 | true
10 <= 20 <= 20 | true
10 <= 21 <= 20 | true
Test 2
9 >= 10 && 9 <= 20 | false
10 >= 10 && 10 <= 20 | true
20 >= 10 && 20 <= 20 | true
21 >= 10 && 21 <= 20 | false
Test 3
(10 <= 9) <= 20 | true
(10 <= 10) <= 20 | true
(10 <= 20) <= 20 | true
(10 <= 21) <= 20 | true
*/
int main( )
{
for( int i = 1; i <= 3; i++ )
{
std::cout << "Test " << i << std::endl;
for( int j = 9; j <= 21; j++ )
{
switch( j )
{
case 9: case 10: case 20: case 21:
break;
default:
continue;
}
switch( i )
{
case 1:
{
std::cout << "10 <= " << j << " <= 20 | " << ( 10 <= j <= 20 ? "true" : "false" ) << std::endl;
break;
}
case 2:
{
std::cout << j << " >= 10 && " << j << " <= 20 | " << ( j >= 10 && j <= 20 ? "true" : "false" ) << std::endl;
break;
}
case 3:
{
std::cout << "(10 <= " << j << ") <= 20 | " << ( ( 10 <= j ) <= 20 ? "true" : "false" ) << std::endl;
break;
}
}
}
}
}
А Вы продолжайте хамить людям с большим количеством сообщений и учить других как писать код на языке, который Вам малознаком.продолжайте мериться письками и хамить людям с малым кол-вом сообщений.
Старый синтаксисКак не под плюсы, если они добавили methodmap, аля классы.