while循環
-
是最基本的循環,他的結構爲:
-
只要布爾表達式爲true,循環就會一直執行下去。
-
我們大多數情況是會讓循環停止下來的,我們需要一個讓表達式失效的方式來結束循環。
-
少部分情況需要循環一直執行,比如服務器的請求響應監聽等。
-
循環條件一直爲true就會造成無限循環【死循環】,我們正常的業務編程中應該避免死循環。會影響程序性能或者造成程序卡死崩潰!
-
語法
while (表達式){
//只要表達式爲true,就一直會執行循環內容
}
- 示例
public class WhileDemo01 {
public static void main(String[] args) {
//輸出1-100
int i=1;
while (i<100){
System.out.println(i++);
}
}
}
- 計算1+2+3…+100 ?
public class WhileDemo02 {
public static void main(String[] args) {
//計算1+2+3...+100
int i=0;
int sum=0;
while (i<=100){
sum=sum+i;
i++;
}
System.out.println(sum);
}
}
do…while循環
- 對於while語句而言,如果不滿足條件,則不能進入循環。但有時候我們需要即使不滿足條件,也至少執行一次。
- do…while循環和while循環相似,不同的是,do…while循環至少會執行一次。
- 語法
do{
//代碼語句
}while (表達式);
- while和do-while的區別:
- while先判斷後執行,dowhile先執行後判斷!
- do…while總是保證循環體被至少執行一次!這是他們的主要差別。
- 示例
public class WhileDemo03 {
public static void main(String[] args) {
//計算1+2+3...+100
int i=0;
int sum=0;
do {
sum=sum+i;
i++;
}while (i<=100);
System.out.println(sum);
}
}
public class WhileDemo04 {
public static void main(String[] args) {
int a=0;
/*
while先判斷a不小於0,所有裏面的內容不會被執行
*/
while (a<0){
System.out.println(a);
a++;
}
System.out.println("================");
/*
do while先執行後判斷,a不小於0表達式不爲true,但至少還是保證一次執行
*/
do {
System.out.println(a);
a++;
}while (a<0);
}
}
for循環
- 雖然所有的循環結構都可以使用while 或者 do…while表示,但Java提供了另外一種語句——for循環,使一項循環結構變得更加簡單。
- for循環語句是支持迭代的一種通用結構,是最有效、最靈活的循環結構。
- for循環執行的次數在執行前就確定的。語法如下:
for (初始化;布爾表達式;更新){
//代碼語句
}
- 示例
public class ForDemo {
public static void main(String[] args) {
int a=1; //初始化條件
while(a<=100){//條件判斷
System.out.println(a);//循環體
a+=2;//迭代
}
System.out.println("while循環執行結束");
/*
int i=1; 初始化條件
i<=100; 條件判斷
1++ ; 迭代
*/
for(int i=1;i<=100;i++){
System.out.println(i);
}
System.out.println("for循環執行結束");
}
}
- 練習1:計算0到100之間的奇數和偶數的和
public class ForDemo2 {
public static void main(String[] args) {
int odd=0;
int even=0;
for (int i=0;i<100;i++){
if(i%2!=0){ //奇數
odd+=i;
}else{ //偶數
even+=i;
}
}
System.out.println("奇數的和:"+odd);
System.out.println("而偶數的和:"+even);
}
}
- 練習2:用while或for循環輸出1-1000之間能被5整除的數,並且每行輸出3個
public class ForDemo3 {
public static void main(String[] args) {
for (int i=0;i<=1000;i++){
if(i%5==0){
System.out.print(i+"\t");
}
if(i%15==0){
System.out.println("");
//或者使用 System.out.print("\n");
}
/**
* print 輸出完之後不會換行
* println 輸出完之後會換行
*/
}
}
}
- 練習3:打印九九乘法表
增強型for循環
- 這裏我們先只是見一面,做個瞭解,之後數組我們重點使用
- Java5引入了一種主要用於數組或者集合的增強型for循環。
- Java增強for循環語法格式如下:
for (聲明語句:表達式) {
//代碼句子
}
- 聲明語句: 聲明新的局部變量,該變量的類型必須和數組元素的類型匹配。其作用域定在循環語句塊,其值與此時數組元素的值相等。
- 表達式:表達式是要訪問的數組名,或者是返回值爲數組的方法。
- 示例
public class ForDemo5 {
public static void main(String[] args) {
//定義了應該數組
int[] number={10,20,20,30,40};
//number.length 獲取數組元素的長度
for (int i = 0;i<number.length;i++) {
//取元素從0開始
System.out.println(number[i]);
}
System.out.println("====================");
//遍歷數組的元素
for (int i : number) {
System.out.println(i);
}
}
}