2016-03-18 4 views
-1

я сделаю «SIMPLE программу» на IJVM, но он спрашивает:Как я могу решить эту проблему на IJVM?

Вы должны получить на входе только цифровые символы (0x30 до 0x39).

Так что, если я буду вставлять, например (A или b или g и т. Д.), Он остановится с помощью «HALT». Как я могу сделать условие, которое принимает значение от 0x30 до 0x39 без буквенных символов?

ответ

0

Вам понадобятся два отдельных теста.

  1. Сначала проверьте, если входной сигнал не меньше 0x30.
  2. Во-вторых, проверьте, что вход меньше 0x40.

Если он соответствует обоим условиям, то это вход, который вы хотите.


Ответ на комментарий о трех типах «если»:

Каждая условная ветвь имеет две возможные цели прыжка, один, когда условие истинно, другое, когда условие ложно.

Для п < 0 теста, TRUE, адрес будет приниматься при п < 0, FALSE, адрес будет приниматься при п> = 0. п < 0 тестов могут также проверить при п> = 0, в зависимости от адрес принят.

+0

Да, но как разрешить, если есть 3 типа «IF». 1) n <0 IFLT 2) n = 0 IFEQ 3) n = n IF_ICMPEQ Как разрешить n <0x40 (@) ?? – Paolo

+0

@ Паоло вы читали руководство или думали? 'IFEQ' и' IF_ICMPEQ', если операнды равны **, так как они полезны в этом случае? здесь вам нужно проверить ** меньше, чем ** –

+0

Я исправил. 1) метод INPUT и передан для значения на main, и он хранился на локальных переменных. 2) после того, как я загрузил 0x30 (0 HEX), и я сделал «ISUB». 3) IFLT этикетка GOTO этикетка2. Спасибо за ваше время! – Paolo

Смежные вопросы