Это очень странный и довольно специфический вопрос.
В конечном итоге я пытаюсь написать программу конвертирования, которая использует исходный код Java и преобразует его так, чтобы он не использовал (помимо прочего)
- Массивы
- Loops
- Пользовательские методы
- Если заявления
Это задача, которую я поставил перед собой после того, как мой учитель сказал мне, что невозможно написать программу без этих вещей.
У меня большинство из них проработано, включая встраивание функций и подстановку массивов, однако я не могу понять, как управлять оператором if.
В C ++ я бы использовал метки и переходы и, возможно, ?:, однако Java не поддерживает операторы GOTO.
Мой вопрос такой:
Учитывая часть кода,
if(CONDITION)
{
//More code in here
}
Как можно преобразовать его так, чтобы он был функционально одинаковым, однако не использовал ключевое слово if. Обратите внимание на то, что структуры петель также не обсуждаются.
Учитывая это, было бы легко создавать операторы else и else if.
Однако я также не уверен в том, как создавать циклы, используя это, поскольку нет оператора GOTO, и методы не обсуждаются.
Edit:
Обратите внимание, что переключение также не допускается, как и рекурсия (исключено тем, что вы не можете определить пользовательские методы, и рекурсивная функция main не будет работать с каждой программой)
Оператор?: Не работает для всех ситуаций. AFAIK, вы не можете вызвать функцию void с помощью?: Так как она хочет присвоить значение как часть своей операции.
Эти условия исходят из того, что IB Computer Science SL требует курса, я беру HL, и как класс, мы смеялись над факторами «мастерства» для SL, которые включают операторы «если» (И если факт, что 3/15 из них являются 'Определяемые пользователем методы с параметрами и типами возвращаемых данных) Сложность состоит в том, чтобы СОВЕРШЕННО ВЫПОЛНИТЬ тест мастерства в SL, все еще создавая программу, которая функционирует правильно.
Ответ: (бдарес)
String result = (CONDITION)?"0":"A";
try{
Integer.parseInt(result);
//Condition is true
} catch(NumberFormatException e){
//Condition is false
}