選択構造体(6種類)
1、シングルブランチif文
IF(条件){
文;
}
ブール式の条件が真の場合、文の文が実行され、または構造後のステートメントが実行する場合。
例1
パッケージcom.baidu.czy; インポートjava.util.Scanner; パブリック クラスCheckNumber { 公共の 静的な 無効メイン(文字列[] args)を{ スキャナSC = 新しい新しいスキャナ(System.in); System.out.printlnは(「入力してください。整数: " ); int型 NUM = sc.nextInt(); IF(NUM NUM%5%6 == 0 && == 0 ){ するSystem.out.println(NUM +" 5,6 "が同時に分割することができます)。 } IF(NUM NUM%5%6 == 0 || == 0 ){ するSystem.out.println(NUM + "5又は6で割り切れます"); } IF(NUM%2 == 0 == ^ 6%NUM 0 ){ するSystem.out.println(NUM + "はわずか5または6で割り切れることができます" ); } } }
2、IF-else文の分岐ビス
例2
インポートjava.util.Scanner; パブリック クラスAdditionQuiz { 公共 静的 ボイドメイン(文字列[]引数){ int型数値1 =(INT)(Math.random()* 10)。 // [0.0-1.0) INT数値2 =(INT)(Math.random()* 10 )。 System.err.print(数値1 + "+" +数値2 + "=" )。 スキャナ入力 = 新しいスキャナ(System.in)。 int型の答え= input.nextInt(); 場合(==(数値1 +回答{数値2)) (のSystem.out.printlnを"おめでとう、あなたはそれを得た!" ); } 他{ System.out.printlnは( "私は申し訳ありませんが、それは間違っていた!" ); System.out.printlnは(数値1 + "+" + number2の+ "=" +(数値1 + 数値2)); } } }
3、場合ネストされたステートメントと複数のブランチのif-else文
例3
以下のためのパッケージ変更com.baidu.czy; インポートjava.util.Scanner; / * 1、メンバ変数:なし初期化。 メンバ変数を初期化する必要はありません、インスタンスを作成し、デフォルトの初期化プロセス。 追加:最後のメンバ変数への変更。あなたは、明示的な初期割り当てなければなりません。 図2に示すように、仮パラメータの方法の内側:初期化なし。 Javaクラスのメソッドは、パラメータが初期化され、むしろ、呼び出し方法は、伝送パラメータを完了するために、とき、値で渡さ属するメカニズム。 3、ローカル変数は:初期化する必要があります。 そして、メンバ変数、ローカル変数を使用できるようにするには、ショーを初期化する必要があります。 * / パブリック・ クラスScoreLevel { 公共の 静的な 無効メイン(文字列[] args)を{ 文字列のレベル = ヌル; スキャナSC = 新しい新しいスキャナ(System.in); System.out.printの( "結果を入力してください。" ); ダブルスコア=sc.nextDouble(); IF(スコア> 100 ||スコア<0 ){ するSystem.out.println( "誤った結果を入力してください。" ); } そう IF(スコア> = 90 ){ レベル = "優れました" ; } 他 IF(スコア> = 80 ){ レベル = "良い" ; } そう IF(スコア> = 70 ){ レベル = "中" ; } そう IF(スコア> = 60 ){ レベルが = "合格" 。 }他の{ レベルが = "失敗" ; } のSystem.out.println( "あなたのスコアの評価:" +レベル); } }
4、条件演算子
条件演算子は三項演算子のJavaです
調子 ?式1:式2
条件がtrueの場合、実行式1、式2そうでない場合は、実行
5、スイッチ文の構造
スイッチ(式){
ケース値1:
文[ブレイク]。
ケースの値2:
文[ブレイク]。
。。。。。。。。。..
[デフォルト:
文]
}
注意:
(1)式は、その値が表現型は、値の型と一致しなければならないが、バイト、ショート、整数、文字、文字列、列挙型でなければならない表現です。
(2)break文はオプションであり、それはブレーク文に遭遇するまで表現マッチングの計算値の場合は、句以下マッチングケースステートメントは、実行された場合、
一致しない場合、デフォルトのステートメントブロックが実行され、両方の構造から直接、スイッチと一致しないと、デフォルトの文でない場合は。
例4
パッケージcom.baidu.czy。 インポートjava.util.Scanner; パブリック クラスSwitchDemo { 公共 静的 ボイドメイン(文字列[]引数){ スキャナSC = 新しいスキャナ(System.in)。 System.out.println( "请年份输入:" ); int型の 年= sc.nextInt(); System.out.println( "请月份输入:" ); int型の月= sc.nextInt(); int型 NUMDAYS = 0 ; スイッチ(月){ ケース 1:ケース 3:ケース 5 : ケース 7:ケース 8:ケース 10 : ケース 12 : NUMDAYS = 31 。 破ります; ケース 4:ケース 6:ケース 9:ケース 11 : NUMDAYS = 30 。 破ります; ケース 2 : もし(!((年%4 == 0)&&(年%100 = 0))||(年%400 == 0 )){ NUMDAYS = 29; } 他{ NUMDAYS = 28 ; } BREAK ; デフォルト: のSystem.out.println( "無効な月" ); BREAK ; } のSystem.out.println( "月の日数は" + NUMDAYS); } }
第二に、ループ構造体(4種類)
図1に示すように、whileループ( "場合ループ")
一般的には不確実性のサイクルタイムの場合に使用
例
パッケージcom.baidu.czy; インポートjava.util.Scanner; パブリック クラスguessNumber { 公共 静的 ボイドメイン(文字列[]引数){ // ランダムに生成された番号100〜200 INTマジック=(INT)(100 + Math.random ()* 101 ); スキャナSC = 新しい新しいスキャナ(System.in); System.out.printlnは( "あなたは推測する番号を入力してください:" ); int型の GUESS = sc.nextInt(); しばらく!(GUESS = マジック) { IF(GUESS> マジック){ System.out.printlnは("あなたは大きなを推測" ;) } 他{ System.out.printlnは( "あなたの推測小さな" ;) } // 次へ GUESS = ; sc.nextInt() } のSystem.out.println(「おめでとうございます、回答\ nが数:!「+である)マジック; } }
2、行う-whileループ(ループ「までタイプ」)
whileループの違いは、やる-whileループが少なくとも一度実行します。
例
インポートjava.util.Scanner; パブリック クラスDoWhileDemo { 公共 静的 ボイドメイン(文字列[]引数){ 二重和= 0、平均= 0 。 INT、N = 0 。 二重の数; スキャナ入力 = 新しいスキャナ(System.in)。 実行{ System.out.print( "请输入一个数(输0结束):" ); 番号 = input.nextDouble()。 もし(!番号= 0 ){ 合計 =合計+ 数。 n個= N + 1 。 } } しばらく(数= 0! )。 平均 =和/ N。 System.out.println( "和=" + 合計)。 System.out.println( "平均=" + 平均)。 } }
循環のための3、
一般サイクルの固定数の場合に使用
ケース印刷乗算テーブル
パブリック クラスNineTable { 公共 静的 ボイドメイン(文字列[]引数){ ため(int型 i = 1; iが10 <; Iは++ ){ ため(INT J = 1; J <= I; J ++ ){ System.out.print( I + "*" + J + "=" + i *はJ + "" ); } のSystem.out.println(); } } }
全部またはサイクルの一部のために空にすることができますが、セミコロンを省略することはできません。注意してください。
以下のような(;;){
}
4、拡張forループ
主に配列の要素やコレクションを反復処理するために使用されます
一般的なフォーマット
{:(式タイプ識別子)用
//ループ
}
式の各要素識別子(アレイまたはコレクション)、ループ文の実行:サイクルを意味します。
タイプまたは要素タイプの集合のグループインデックス、発現対象が配列またはコレクションでなければなりません。
たとえば、次のforループ配列の要素とマークの拡張要件
二重の合計= 0;
for(double score:marks){
sum = sum + score;
}
使用增强型for循环的局限性:只能顺序访问数组或集合的元素。