• ベストアンサー

switchの中にIF分の条件分岐について

int lot2 = Integer.valueOf(年金コード).intValue(); switch (lot2) { case 1: if( (制度コード.compareTo("08")==0) || (制度コード.compareTo("09")==0) && 旧共済退職年金減額該当表示.compareTo("0")==0 ){ out.print("退職  ");break;} case 2: if( (制度コード.compareTo("08")==0) || (制度コード.compareTo("09")==0)){ out.print ("通算退職");break;} 上記のコードは 年金コードが1の場合 制度コード8なおかつ9または旧共済退職年金減額該当表示が0のとき"退職  "を表示 年金コードが2の場合 制度コード8なおかつ9のとき"通算退職"を表示するコードになります。 このコードの条件に下記のコード } else if ( (制度コード.compareTo("08")==0) || (制度コード.compareTo("09")==0)&& 旧共済退職年金減額該当表示.compareTo("1")==0 ){ out.print ("減額退職"); 年金コードが1の場合 制度コード8なおかつ9または旧共済退職年金減額該当表示が1のとき"減額退職"を表示 とcase 1の中で 旧共済退職年金減額該当表示が1と0で条件判定したいのですが スイッチ文の中のcase 1を複数使用したい場合 どのようにすれば良いのでしょうか? どうぞよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • jjon-com
  • ベストアンサー率61% (1599/2592)
回答No.2

switch (lot2) { case 1: __if (制度コード.compareTo("08")==0 || 制度コード.compareTo("09")==0) { ____if (旧共済退職年金減額該当表示.compareTo("0")==0) { ______out.print("退職  "); ____} ____if (旧共済退職年金減額該当表示.compareTo("1")==0) { ______out.print ("減額退職"); ____} __} __break; case 2: __if (制度コード.compareTo("08")==0 || 制度コード.compareTo("09")==0) { ____out.print ("通算退職"); __} __break;

yairi1106
質問者

お礼

対応出来ました。 色々と試してみたのですが } else ifのパターンで試してうまくいきませんでした。 似たようなパターンでもう1点ご質問したいことがありますので 新規で投稿いたします。 どうもありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

単に「case 1:」のところに追加するだけじゃダメなの?

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 条件分岐が多いIF分の書き方について_2

    if (制度コード.compareTo ("08") == 0 && 旧共済従前額保障表示 .compareTo ("1") == 0) { out.print ("*"); } else if (制度コード.compareTo ("09") == 0 && 上乗有無表示 .compareTo ("1") == 0 && 上乗従前額保障表示 .compareTo ("1") == 0) { out.print ("*"); } else if (制度コード.compareTo ("09") == 0 && 独自有無表 .compareTo ("1") == 0 && 独自従前額保障表示 .compareTo ("1") == 0) { out.print ("*"); } else { out.print(" ");} } この条件の中に 新たな条件の ただし共通退職時共済識別表示が4の場合だけout.print (" ");とするを 加えたいのですが 普通に加えると 反応しません。 過去の投稿のアドバイスから色々と試したのですが どなたかアドバイスお願い致します。 } else if ( 共通退職時共済識別表示.compareTo ("4") == 0) { out.print (" ");

    • ベストアンサー
    • Java
  • 条件分岐が多いIF分の書き方について。

    テキスト入出力でのIF分についてご質問がございます。 例えば条件が多いときに、結果が得られない時があるのですが 書き方で何か問題があるのならご指摘ください。 下記のコードでご説明します。 //コード1の文字列が04でコード2の文字列が01の場合00001を表示 if (コード1.compareTo ("04") == 0 && コード2 .compareTo ("01") == 0 ) { out.print ("00001"); //コード1の文字列が04でコード3の文字列が2の場合00005を表示 } else if (コード1.compareTo ("04") == 0 && コード3 .compareTo ("02") == 0 ) { out.print ("00005"); //コード1の文字列が08でコード3の文字列が07の場合10000を表示 } else if (コード1.compareTo ("08") == 0 && コード3 .compareTo ("07") == 0 ) { out.print ("10000"); //コード1の文字列が10でコード5の文字列が07の場合30000を表示 } else if (コード1.compareTo ("10") == 0 && コード5 .compareTo ("07") == 0 ) { out.print ("30000"); //それ以外エラー } else { out.print("エラー");} } 値がIF分の条件とマッチしていても if (コード1.compareTo ("04") == 0 && コード2 .compareTo ("01") == 0 ) { out.print ("00001"); //コード1の文字列が04でコード3の文字列が2の場合00005を表示 } else if (コード1.compareTo ("04") == 0 && コード3 .compareTo ("02") == 0 ) { out.print ("00005"); //コード1の文字列が08でコード3の文字列が07の場合10000を表示 } else if (コード1.compareTo ("08") == 0 && コード3 .compareTo ("07") == 0 ) { out.print ("10000"); このコードまでに当てはまらない条件はすべて ("10000"); の結果になり つまりそれ以降のelse if の条件に 当てはまらなくなります。 else if をいくらでも増やして条件分岐出来ると学習して 検証しているのですが・・・ 最終的にがIF~else if ~elseで 30パターンぐらい条件分岐したいと思ってます。 初歩的なご質問で恐縮ですが アドバイス よろしくお願いします。

    • ベストアンサー
    • Java
  • switch文について

    下記のようなswitch文に もうひとつの変数 int tmp = Integer.valueOf(変数2).intValue();を代入したいのですが もう一つ代入できるのでしょうか?? 因みにswitch文にIF文を加えて変数を代入するのではなく switch文で複数の変数を使用したいのです。 どうぞよろしくお願いいたします。 なお、質問の意味が分からない、意図が伝わらない方は アドバイスはいりませんので 恐縮ですがアドバイスお願いいたします。 int lot = Integer.valueOf(変数1).intValue(); switch (lot) { case 1: out.print("OK"); break; case 2: out.print("NG"); break; default: out.print("エラー"); break;} }

    • ベストアンサー
    • Java
  • switch分が機能しません。

    お世話になります。 下記のswitchのソースで文字列の値を 判定したいのですが String lot = 収録状況表示; switch (lot) { case "1": out.print("収録!"); break; case "2": out.print("未収録!"); break; default: out.print(" "); break; eclipseで機能しないPCがあります。 考えられる原因はなにかありますでしょうか?? 因みに きのうしないPCは switch (lot) {の箇所に Cannot switch on a value of type String for source level below 1.7. 変換可能な int 値または enum 定数のみが許可されています と表示されます。 機能しているPC  java -version "1.7.0_02 Java(TM) SE Runtime Environment (build 1.7.0_02-b13) Java HotSpot(TM) Client VM (build 22.0-b10, mixed mode, sharing) 機能していないPC    java version "1.7.0_03" Java(TM) SE Runtime Environment (build 1.7.0_03-b05) Java HotSpot(TM) Client VM (build 22.1-b02, mixed mode, sharing) 以上よろしくお願い致します。

    • ベストアンサー
    • Java
  • switch で疑問。java超初心者です。

    まず、 public class P1{   public static void main(String[] args){     int n = 1;       switch(n){         case 0:           System.out.println("あ");           break;         case 1:           System.out.println("い");           break;         case 2:           System.out.println("う");           break;         default:           System.out.println("え");       }   } } は、当然「い」と表示されますよね。 default: をcase 3:にしても、問題なく「い」と表示されました。 そこで、こんな風にしてみました。 public class P3{   public static void main(String[] args){     int n = 1;     String s;       switch(n){         case 0:           s="あ";           break;         case 1:           s="い";           break;         case 2:           s="う";           break;         default:           s="え";       }       System.out.println(s);   } } これは「い」と表示されましたが、 default: をcase 3:にすると、エラーとなってしまいます。なぜでしょう。 ちなみに、エラーの内容は 変数 s は初期化されていない可能性があります。     System.out.print(s);                ^ というものでした。 そこで、 変数 s を初期化してみようと、次のように変数 s の宣言の後に null を代入しました。 String s=null; すると、「い」と表示され、エラーは出ません。 なぜ、このようになるのでしょうか。 String型の変数を使っていて、今まではこのようなエラーは出た事が無かったのですが、 どうやらswitch文の中では、初期化しろ、と出てくるようです。 わかり易い解説をいただければと思います。 これは仕様だということで、この通り受け入れるしかないのでしょうか。 勉強していて、少々腑に落ちないので、質問致しました。 よろしくお願いいたします。

    • ベストアンサー
    • Java
  • phpのswitch文

    お世話になります。下記のようなフォームがあります。 <form method="post"><input type="submit" value="新規登録" name="registration"><form method="post"><input type="submit" value="一覧" name="list"></form> 新規登録と一覧、2つのボタンがあるのですが押されたボタンによって処理を区別したいです。 データを受け取るPHP内に下記のように記述したのですが思い通りの結果になりません。アドバイスを宜しくお願いします。 ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー <?php switch(ココの記述が判りません){ //新規登録画面を表示 case "registration": print "新規登録!"; break; //一覧を表示 case "'list', )": print "一覧表示"; break; default: print "ココがデフォルト表示"; } ?> ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー if文だとif(isset($_POST["registration"])){の記述で分岐できたのですが、条件分岐が多いのでswitch文で書きたいです。 宜しくお願いします

    • ベストアンサー
    • PHP
  • 厚生年金(旧共済年金)について

    お世話になります。 年齢問わず、受給者の勤務期間(20年以上)や給与実績により65才からは厚生年金(旧共済年金)が支給されますね。ただ、老齢基礎年金と違い、厚生年金(旧共済年金)はある年齢になると減額されるように記憶しているのですが正しいでしょうか?正しいなら、それは何才からでしょうか? また、どの程度の減額割合になるのでしょうか?さらに、支給月額により減額割合が異なるのでしょうか? お教えください。

  • 退職金のない会社の退職金分給与について

    退職金制度の無い会社って月々の給与に退職金分を乗せているという イイワケ?笑をして(本当は違う意味ですよね)いますが、 これって本当だとすると、所得税をたくさん払っていることに なりませんか? 退職金制度か、中小企業退職共済や確定拠出年金などで制度として利用し、 退職金の枠にしておけば、所得税から控除されるのではないでしょうか? どうなんでしょうか?

  • javaの条件分岐でコンソールにうまく表示できません(TmT)

    eclipse3.4.1を使用して、Javaで下記のようなコードを書いたのですが、望んだ結果が得られません。 public class 条件分岐 { public static void main(String[] args){ for (int i = 1; i < 6; i++){ for (int j = 0; j < i; j++){ System.out.print("☆"); } System.out.println(); } } } そして、コンソールには、 ☆ ☆☆ ☆☆☆ ☆☆☆☆ ☆☆☆☆☆ と、階段状に表示されます。 この結果を ☆ ☆☆ ☆☆☆ ☆☆☆☆ ☆☆☆☆☆ と、このようにピラミッド上に表示したいのですが、 どうすればよいのか分かりません。 どなたか、ご指導お願いいたします。

    • ベストアンサー
    • Java
  • ループの終了条件

    ループから抜ける終了条件として [CTRL]+[z]を入力するようにしたいんですが 判定はどうしたら良いんですか? for(int i=0;i<50;i++){    System.out.print(i+1+"つ目を入力してください。===>");    String line=reader.readLine();    x[i] =line.charAt(0);       if(!!!!!){         break;       } } if(!!!!!)のところをどのように書いたら良いか教えてください。 お願いします。

    • ベストアンサー
    • Java
このQ&Aのポイント
  • MFJ-7500CDWのコピー設定の保持ができないというお困りごとについて、解決方法をご紹介します。
  • お使いのMFJ-7500CDWでは、コピー設定の保持ができないという問題が発生しているようです。この問題を解決するための方法をご紹介します。
  • MFJ-7500CDWのコピー設定の保持ができないという問題について、対処法をご紹介します。お困りの方は参考にしてください。
回答を見る