これは非常に奇妙で、非常に具体的な質問です。
最終的に、私はJavaソースを取り込んで、それを使用しないように変換するプログラム変換を作成しようとしています(とりわけ)
- 配列
- ループ
- ユーザー定義のメソッド
- Ifステートメント
これらを使わずにプログラムを書くことは不可能だと先生から言われた後、これは私が自分で設定した課題です。
関数のインライン化や配列の置換など、これらのほとんどは解決しましたが、ifステートメントの管理方法を理解できません。
C ++では、ラベルとgotoを使用し、おそらく?:を使用しますが、JavaはGOTOステートメントをサポートしていません。
私の質問はこれです:コードのセクションを考えると、
if(CONDITION)
{
//More code in here
}
機能的に同じになるように変換するにはどうすればよいですか。ただし、ifキーワードは使用しません。ループ構造も問題外であることに注意してください。
これを考えると、elseおよびelseifステートメントを作成するのは簡単です。ただし、GOTOステートメントがなく、メソッドが問題外であるため、これを使用してループを作成する方法もわかりません。
編集:スイッチも許可されておらず、再帰も許可されていないことに注意してください(ユーザーメソッドを定義できず、再帰的なメイン関数がすべてのプログラムで機能するとは限らないという事実によって除外されます)?:演算子はすべての状況で機能するわけではありません。AFAIKは、操作の一部として値を割り当てたいため、?:を使用してvoid関数を呼び出すことはできません。
これらの条件は、IB Computer Science SLがコースを必要とすることから来ています。私はHLを受講しており、クラスとして、「if」ステートメントを含むSLの「習熟」要素を笑っていました(そして、事実の3/15が「ユーザー定義」である場合paramsとreturntypesを持つメソッド)課題は、正しく機能するプログラムを作成しながら、SLでのマスタリーテストに事実上失敗することです。
回答:(bdaresによる)
String result = (CONDITION)?"0":"A";
try{
Integer.parseInt(result);
//Condition is true
} catch(NumberFormatException e){
//Condition is false
}