このセクションでは、我々はJava構文の残りのコンテンツの基礎を説明していき、セクションに接続されています。動作条件は、フロー制御文、ループと関連する動作を含むと、ユーザによってアレイを文の入力をジャンプ。
プロセス制御は、私たちのための手続きの手順を制御するための基本的な手段を提供する任意の1つのプログラミング言語のために不可欠です。一般的な、条件文、ループ文、ジャンプの文に分割します。
知識ポイント
- プロセス制御
- 配列
- ユーザの入力操作
声明文であるかどうかを決定します。
構文:
if(条件){ 条件成立时执行的代码 }
ときもし条件が満たされたとき、コードブロックの一部が実行された場合... else文は、;条件を満たさない場合、プロセスは他の部分に移ります。例えば、日数、月30日以上であれば、そうでない場合は大月、さつきを比較しました。
構文:
if(条件){ 代码块1 } else{ 代码块2 }
複数のステートメントの場合、条件1を満たさない場合には、条件2が下方ために、決定される。表面の現在の条件が成立していない場合、他のブロック内のコードの最後の実行。
構文:
if(条件1){ 代码块1 } else if(条件2){ 代码块2 } ... else { 代码块n }
文が実行された場合ならば(または他の場合、または他の)一つだけの条件が満たされている、中括弧を省略することができます。注意してください!しかし、文の数の実装場合、ブレースが不可欠です。
例えば:
int days = 31; if(days > 30) System.out.println("本月是大月"); else System.out.println("本月是小月");
文は内層に形成することができる場合にはネストされました。if文の条件場合、外層、内層が決定する場合、条件が満たされた場合にのみ、ネストされました。
構文:
if(条件1){ if(条件2){ 代码块1 } else{ 代码块2 } } else{ 代码块3 }
文の演習場合:暁明試験、再審査のための最高の、60点以下のために78ポイント、60ポイント以上の合格、80個の以上のポイントだけでなく、90個の以上のポイントは、ソースコードを記述し
ScoreJudge.java
、状況の暁明出力を。次のように参照コードは次のとおりです。
public class ScoreJudge { public static void main(String[] args){ int score = 78; if(score >= 60){ if(score >= 80){ if(score >= 90){ System.out.println("成绩优秀"); } else{ System.out.println("成绩良好"); } } else{ System.out.println("成绩及格"); } } else{ System.out.println("需要补考"); } } }
注意:
所有的条件语句都是利用条件表达式的真或假来决定执行路径,Java 里不允许将一个数字作为布尔值使用,虽然这在C和C++是允许的,如果要在布尔测试里使用一个非布尔值,需要先用一个条件表达式将其转换成布尔值,其他控制语句同理。
コンパイラの実装:
$ javac ScoreJudge.java $ Java ScoreJude 成绩及格
あなたが同等のオプションを決定する必要がある場合は、switch文をより簡潔である使用。例えば:Yaohaoは、そのような第三の賞3を振るように第1の賞、2を振るための第2の賞を得るために振るない他の賞に振ります。
構文:
switch(表达式){ case 值1: 代码块1 break; case 值2: 代码块2 break; ... default: 默认执行的代码块 }
同じことは、開始時にスイッチ文break文が検出されるまでスイッチダウンまたはブロックの終了後に、この位置からの発現値とcase文の値は、一致するデフォルトのcase文のコードブロックが実行されていない場合。
ソースコードファイルを作成します
Draw.java
。public class Draw { public static void main(String[] args){ int num = 2; switch(num){ case 1: System.out.println("恭喜你,获得了一等奖"); break; case 2: System.out.println("恭喜你,获得了二等奖"); break; case 3: System.out.println("恭喜你,获得了三等奖"); break; default: System.out.println("很遗憾,下次再来"); } } }
コンパイルして実行します。
$ javac Draw.java $ java Draw 恭喜你,获得了二等奖
while
構文:while(条件){ 代码块 }
なお、第1決意処理しながら行い、次に実行されます。
- 条件が満たされている間の背後にある判事(trueまたはfalse)
- 条件は、コードの実行サイクルを確立し、その後、繰り返し実行されると
1.
、2.
条件が満たされなくなるまでループまで
do-while
構文:do{ 代码块 }while(条件);
実行が最初に行われている間-DO、及び(コードが少なくとも一度実行されるように、サイクル内)を判断します
- 操作のサイクルを存続し、その後の条件は、サイクルを確立したかどうかを判断するために、
- 条件が満たされた場合は、引き続き
1.
、2.
までループ条件がホールドアップしません。
以下のような:
int i = 0; while(i < 100){ System.out.println("I love ShiYanlou!"); i++; }
int i = 0; do { System.out.println("I love ShiYanlou!"); i++; } while(i < 100);
演習:それぞれ、2つの方法は、ソースコードファイルの書き込みに、-しばらく操作を行いながら、
SumOfEven.java
偶数と1-1000、および出力に実装し、。どちらの方法でも、あなたの出力の結果を検証することと一致していますか?次のように参照コードは次のとおりです。
public class SumOfEven { public static void main(String[] args){ int i1 = 1, i2 = 1; int sum1 = 0, sum2 = 0; while (i1 <= 1000){ //循环1000次 if(0 == i1 % 2){ //判断是否为偶数 sum1 += i1; //将偶数加入到总数里 } i1++; //i自增1 } System.out.println("用while,1到1000中,所有偶数的和为:"+sum1); do { if (0 == i2 % 2){ //在条件语句中,将数值写在前面是为了防止将==写成了= sum2 += i2; } i2++; } while(i2 <= 1000); System.out.println("用do-while,1到1000中,所有偶数的和为:"+sum2); } }
コンパイルして実行します。
$ javac SumOfEven.java $ java SumOfEven 用while,1到1000中,所有偶数的和为:250500 用do-while,1到1000中,所有偶数的和为:250500
for
構文:for(循环变量初始化; 循环条件; 循环变量变化){ 循环操作 }
比較のためにしばらくして文の構造は、より簡潔で読みやすいながら-ん、それは実行の順序です:
- 実行サイクル変数初期化部の初期状態は、サイクルは、サイクル全体にわたって一度だけ実行され、このセクションで提供されます
- 条件が真の場合、ループ本体内のコードが実行されると、循環状態を分析し、falseの場合、ループが直接出て
- 次決意条件のループ変数の値を変更する実行サイクル変数変更手段
- 再実行に続いて
2.
、3.
、4.
それはループが終了するまで
例えば、100は、分割及び3の数内で計算することができません。
int sum = 0; // 保存不能被3整除的数之和 // 循环变量 i 初始值为 1 ,每执行一次对变量加 1,只要小于等于 100 就重复执行循环 for (int i = 1;i<=100;i++) { // 变量 i 与 3 进行求模(取余),如果不等于 0 ,则表示不能被 3 整除 if (i % 3 != 0) { sum = sum + i; // 累加求和 } } System.out.println("1到100之间不能被3整除的数之和为:" + sum);
演習:ソースコードファイルを書き込む
SumOfOdd.java
1-1000を達成するために、すべてでさえ、および出力。次のように参照コードは次のとおりです。
public class SumOfOdd { public static void main(String[] args){ int sum = 0; for(int i = 1; i <= 1000; i++){ if(0 == i % 2){ sum += i; } } System.out.println("用for,1到1000中,所有偶数和为:"+sum); } }
コンパイルして実行します。
$ javac SumOfOdd.java $ java SumOfOdd 用for,1到1000中,所有偶数和为:250500
break
多くの場合、条件およびループ文で使用されるキーワードは、ループ文の外にジャンプします。continue
キーワードは、残りの次の反復ループ文の実行をスキップします。ソースコードファイルを作成しますJump.java
。public class Jump{ public static void main(String[] args){ //break 练习 for(int i = 1; i <= 10; i++){ System.out.println("循环第"+i+"次"); if(0 == i % 3){ break; } if(0 == i % 5){ System.out.println("我进来了!"); } } //continue练习 打印10以内的所有奇数 for(int i = 1; i <= 10; i++){ if(0 == i % 2) //判断i是否为偶数 continue; //通过continue结束本次循环 System.out.println(i); } } }
コンパイルして実行します。
$ javac Jump.java $ java Jump 循环第1次 循环第2次 循环第3次 1 3 5 7 9