区分を使用して問題を解決するための状態モデル

問題:

機能があります:

Y = {X X <1
    | 2X-1 <= xで<10
    \ 3X-11 X> = 10

プログラム、入力x、出力yを書きます

コードの実装:

  2つの方法があります。

  最初:達成するためにピース判決文のifelse記事を使用するための最も簡単な方法:

1つの インポートjava.util.Scanner。
2  
3  パブリック クラスデモ{
 4  
5      パブリック 静的 ボイドメイン(文字列[]引数){
 6          // TODO自動生成方法スタブ
7          のSystem.out.println( "请输入一个数:" )。
8          スキャナのスキャナ= 新しいスキャナ(System.in)。
9          INT X = scanner.nextInt()。
10          であれば(X <1 ){
 11              のSystem.out.println(X)
12          } そう であれば(1 <= X && X <10 ){
13              のSystem.out.println(2 * X-1 )。
14          } {
 15              のSystem.out.println(3 * X-11 )。
16          }
 17      }
 18  
19 }

  この方法は簡単ですが、実際には、この方法は、複数の選択肢の判断に直面した場合は特に、最高の効率ではありません。そして、メンテナンスの後半に頻繁に変更は、常に、変更不要なトラブルを引き起こし、容易ではありません。

  なお、第2の方法が提案されています

  第二:状態モード(3つの選択条件より小さくない、推奨される方法)の問題を実装します

  まず、抽象クラスの状態(ステータス)を書きます:

  

おすすめ

転載: www.cnblogs.com/wangjiong/p/11249270.html