2012-05-06 7 views
0

Я делал код, чтобы найти квадратные корни для практики с базовым кодированием cmd. Однако, когда я печатаю отрицательное число или несовершенный квадрат, он переходит в бесконечный цикл. Я знаю, как это исправить, но мне нужно иметь возможность использовать неравенства (меньше, чем больше). (Х число у меня есть, а у есть это квадратный корень) Таким образом, я могу сказать:Как использовать неравенства в CMD-коде

  • если% х% (меньше) 0 (Не используйте)
  • если% г% (больше)% х% (не работают)

или я мог бы создать еще одну переменную, которая все меньше (г)/выше (п), чем х:

  • если% х % ==% z% (не работает)
  • if% x% ==% n% (D не работает)

Пожалуйста, помогите мне. Кажется, я не могу найти ответ.

ответ

3

Вы можете попробовать прочитать документацию для оператора IF - введите HELP IF или IF /? из командной строки. Примерно на полпути через него описываются расширения команд, которые поддерживают неравенства, например LSS, меньше.

if 0 lss 1 (echo 0 is less than 1) else (echo 0 is not less than 1) 
2

+1 к @ dbenham-х answer, вот выдержка из IF документации со всеми операторами в сравнении:

Если команда расширения включены IF изменяется следующим образом:

IF [/I] string1 compare-op string2 command 
IF CMDEXTVERSION number command 
IF DEFINED variable command 

, где compare-op может быть одним из:

EQU - equal 
NEQ - not equal 
LSS - less than 
LEQ - less than or equal 
GTR - greater than 
GEQ - greater than or equal 
+2

Я намеренно не включил отрывок, потому что я хотел, чтобы поощрить OP использовать HELP систему :-) – dbenham

+0

Вот почему ваш ответ лучший ... :-) В документации по-прежнему много информации, которую нужно прочитать, чтобы действительно понять возможности. Поэтому, если OP действительно находится на практике, она будет исследовать документ, и все остальные люди спотыкаются на этот вопрос, просто ищущий быстрый ответ, список доступен прямо здесь. – marapet

0

Ну в коде это будет выглядеть примерно так

:: this is Regional settings dependant so tweak this according 
:: your current Windows regional settings 
for /f "tokens=1-3 delims=,: " %%a in ('echo %time%') do set hhmmsss=%%a%%b%%c 

if /i %hhmmsss% LSS 95959 SET hhmmsss=0%hhmmsss%