これは非常に奇妙で非常に具体的な質問です。Javaのifステートメントを使用していません
最終的に私は
- 配列
- ループ
- ユーザー定義のメソッド(とりわけ)Javaのソースを取り込み、プログラム変換を記述しようとしている、そしてそれは、そのような、それは使用しないことを変換しています
- 先生がそれことを私に言った後にこれは、私が自分自身のために設定挑戦です文
場合これらを使わずにプログラムを書くことは不可能でした。
私は関数のインライン化や配列の置き換えを含めて、これらの多くを処理しましたが、if文の管理方法を考えることはできません。
C++では、ラベルとgotosを使用し、おそらく?:を使用しますが、JavaはGOTO文をサポートしていません。
私の質問はこれです:それは、このようなことがあればしかし、キーワードを使用していない、機能的に同じであることを変換することができますどのようにコードのセクションを考える 、
if(CONDITION)
{
//More code in here
}
。ループ構造も問題ではないことに注意してください。
これを考えると、else文とelse文を簡単に作成できます。 しかし、これを使ってループを作成する方法についてもわかりません.GOTOステートメントやメソッドはありません。
編集: スイッチも許可されていないことに注意してください、また(ユーザーのメソッドを定義することはできません、と再帰主な機能は、すべてのプログラムでは動作しないという事実によって除外)再帰 がある?:演算子すべての状況で機能しません。 AFAIKでは、操作の一部として値を代入したいので、?:でvoid関数を呼び出すことはできません。
これらの条件は、IBコンピュータサイエンスSLが必要とするコースから来ています。私はHLを取っています。クラスとして、if文を含むSLの '熟練'の要素を笑っていました。 'paramsと戻り値の型を持つユーザー定義のメソッドです)。正しく機能するプログラムを生成しながら、SLのマスターテストを効果的にFAILするのが難題です。
回答:(bdares別)
String result = (CONDITION)?"0":"A";
try{
Integer.parseInt(result);
//Condition is true
} catch(NumberFormatException e){
//Condition is false
}
gotoとlabelsを使ったループはまだループですが、別の構文を使用しているだけです。ループを真に取り除くには、ループを展開する必要があります。つまり、ステートメントをループ内に配置して、代わりに順次実行します。無限ループ(例えばwhile(1))では不可能です。 –
@JoachimPileborgは真ではありません。彼はあらかじめ書かれたライブラリのループを使って除外しているわけではないので、そのようなライブラリが存在すれば(理論的に) 'java.util.Loop(myObject.class、10);'と書くことができます。それは、コレクションオブジェクトなどのソリューションをハックすることができます。 – bdares
http://www.antiifcampaign。com /これは改善されたOOP(改善されたデザインを通してIFとしてネストされたひずんだ隠れたロジックを削除する)です。 – earcam