### For循環(重點)
* 雖然所有循環結構都可以用 while 或者 do...while 表示,但Java提供了另一種語句——for循環,使一些循環結構變得更加簡單。
* <font color=red>for循環語句是支持迭代的一種通用結構,是最有效、最靈活的循環結構。</font>
* for循環執行的次數是在執行前就確定的。語法格式如下:
“更新”就是迭代的意思
```java
for(初始化;布爾表達式;更新;){
//代碼語句
}
```
* 練習1:計算0到100的奇數和偶數的和
* 練習2:用while或for循環輸出1-1000之間能被5整除的數,並且每行輸出3個
* 練習3:打印九九乘法表
```java
package com.kuangstudy.struct;
public class ForDemo01 {
public static void main(String[] args) {
int a = 1;//初始化條件
while(a<=100){ //判斷條件
System.out.println(a); //循環體
a+=2; //迭代。 a+=2; 的意思是 a=a+2
}
System.out.println("while循環結束!");
//初始化條件//條件判斷//迭代
for (int i = 0; i <= 100; i++) {
System.out.println(i);
}
System.out.println("for循環結束!");
/*
關於 for 循環有一下幾點聲明:
最先執行初始化步驟,可以聲明一種類型,但可初始化一個或多個循環控制變量,也可以是空語句。
然后,檢測布爾表達式的值,如果為true,循環體被執行,如果為false,循環終止。開始執行循環體后面的語句,
執行一次循環后,更新循環控制變量(迭代影子控制循環變量的增減),
再次檢測布爾表達式,循環執行上面的過程。
* */
//以下是個死循環
// for ( ; ; ){ }
}
}
```
```java
package com.kuangstudy.struct;
public class ForDemo02 {
public static void main(String[] args) {
int oddSum = 0 ;
int evenSum = 0 ;
for (int i = 0; i <= 1000; i++) {
if (i%2!=0){//奇數
oddSum+=i;//oddSum = oddSum + i
}else {//偶數
evenSum+=i;
}
}
System.out.println("奇數的和:"+oddSum);
System.out.println("偶數的和:"+evenSum);
}
}
```
```java
package com.kuangstudy.struct;
public class ForDemo03 {
//練習2:用while或for循環輸出1-1000之間能被5整除的數,並且每行輸出3個
public static void main(String[] args) {
for (int i = 1; i <= 1000; i++) {
if (i%5==0){
System.out.print(i+"\t");//\t 意思是:水平制表(HT) (跳到下一個TAB位置),運行到“\t”時,判斷當前字符串長度,將當前字符串長度補到8的倍數(不包括0)
}
if (i%(5*3)==0){
System.out.println();//意思是換行
//System.out.println("\n"); 這樣也可以表達是換行,轉義字符 \n 意思是:換行(LF) ,將當前位置移到下一行開頭
}
}
//println 輸出完會換行
//print 輸出完不會換行
}
}
```
```java
package com.kuangstudy.struct;
//九九乘法表
public class ForDemo04 {
public static void main(String[] args) {
for (int j = 1; j <= 9; j++) {
for (int i = 1; i <= j; i++) {
System.out.print(j+"*"+i+"="+(j*i)+"\t");
}
System.out.println();
}
}
}
```
### 增強for循環
* 這里我們先只是見一面,做個了結,之后數組我們重點使用
* Java5 引入了一種主要用於數組或集合的增強型for 循環。
* Java 增強 for 循環語法格式如下:
```java
for(聲明語句 :表達式)
{
//代碼句子
}
```
* 聲明語句:聲明新的局部變量,該變量的類型必須和數組元素的類型匹配。其作用域限定在循環語句塊,其值與此時數組元素的值相等。
* 表達式:表達式是要訪問的數組名,或者是返回值為數組的方法。
```java
package com.kuangstudy.struct;
public class ForDemo05 {
public static void main(String[] args) { // []是數組的一個意思
int [] numbers = {10,20,30,40,50}; //等於ing一個numbers的數組
for (int i=0;i<5;i++){
System.out.println(numbers[i]); //輸出的意思是i根據numbers數組里面挨個取值
}
System.out.println("------------------------");//增強fot循環
for (int x:numbers){ //相當於把numbers的數組賦值給了int x
System.out.println(x);
}
}
}
//以上兩種for循環輸出的結果都是一樣的
```