Java基礎入門——循環中的for循環簡單示例
首先來看看 for 的語法結構:
for(表達式1;表達式2;表達式3){ 循環語句 }
或者更直觀的表示為這樣:
for(變量初始化;循環條件;迭代語句){ 循環語句 }
for循環的執行流程是:
首先執行表達式1,一般是進行變量初始化操作,然后執行表達式2,即對循環條件進行判斷,如果結果為真,則執行循環體;循環體執行完畢后,執行表達式3,改變循環變量的值,再次執行表達式2;結果為真,繼續循環;如果結果為假,則終止循環,執行后面的語句。
無論執行多少次,表達式1僅執行一次。
我們舉一個例子,編寫一個小代碼,來實現java代碼1到100的求和?
1+2+3+……+100=?
package com.student.exam; /**
*計算1到100的和
*/
public class Summation { public static void main(String[] args) { int sum = 0; //聲明變量sum存放計算的和,賦初值為0
for(int i=1;i<=100;i++) sum +=i;//等價於語句sum=sum+score System.out.println("sum="+sum); } }
運行結果:sum=5050
for循環適合循環次數固定的情況。對於循環次數不固定的,比如數組的循環和集合的遍歷,可以用foreach循環。foreach循環不需要知道循環的次數,這個以后講解。
換一種加法用java實現1到100的和
(1+100)+(2+99)+……(50+51)=?
1 package com.student.exam; 2 /** 3 * 使用for循環實現1到100的和 4 * 兩頭相加進行計算 5 * (1+100)+(2+99)+(3+98)+... ...+ (50+51) 6 */ 7 public class Summation2{ 8 9 public static void main(String[] args) { 10 int sum = 0; 11 for(int i=1,j=100;i<j;i++,j--){ 12 sum+=i+j; 13 } 14 System.out.println("sum= "+sum); 15 } 16 17 }
下面我們來實現計算學生成績的for循環代碼:
假定給出一個學生的5門功課的成績,要求輸出平均值
1 package com.student.exam; 2 /** 3 * 使用for 循環 4 * 輸入學生的5們功課,查詢該學生的總成績和平均分數 5 */ 6 import java.util.Scanner; 7 8 public class AverageScores { 9 public static void main(String[] args) { 10 int score; //聲明一個變量,取名為score,用來接收學生的成績值 11 int sum= 0; //聲明一個變量,取名sum,用來存儲學生的成績和 12 double avg =0.0; //聲明一個double類型的變量,用來接收計算出來的學生的平均分 13 Scanner sc = new Scanner(System.in); //獲取鍵盤輸入 14 System.out.println("請輸入學生的姓名:"); 15 String name = sc.next(); //將獲取的輸入賦值給一個String類型的name變量 16 int i= 0; //聲明一個int類型的變量,賦初始值為0 17 for(;i<5;i++){ //循環5次錄入成績 18 System.out.println("請輸入5門功課的第"+(i+1)+"門的成績:"); 19 score = sc.nextInt(); //錄入成績 20 sum += score; //等價於語句 sum=sum+score; 21 System.out.println(name+"的前"+(i+1)+"門功課的成績和是:"+sum); 22 } 23 System.out.println(name+"的總成績是:"+sum); 24 avg = sum/5; //計算平均成績 25 System.out.println(name+"的平均分是:"+avg); 26 27 } 28 29 }
因為這是Java的基礎部分,屬於初始java,所以每行代碼都給出了注釋,為了初學者更能直觀的感受,我把其中的英文標識符換做漢字代替。
注意:使用中文盡管在Eclipse中能夠正常運行,但在實際開發中,還是推薦使用全英文的命名方式。
1 package com.student.exam; 2 /** 3 * 使用for 循環 4 * 輸入學生的5們功課,查詢該學生的總成績和平均分數 5 */ 6 import java.util.Scanner; 7 8 public class 求學生的平均成績 { 9 public static void main(String[] args) { 10 int 單科成績; 11 int 總成績= 0; 12 double 平均分 =0; 13 Scanner 鍵盤輸入 = new Scanner(System.in); 14 System.out.println("請輸入學生的姓名:"); 15 String 學生姓名 = 鍵盤輸入.next(); 16 int i= 0; 17 for(;i<5;i++){ 18 System.out.println("請輸入5門功課的第"+(i+1)+"門的成績:"); 19 單科成績 = 鍵盤輸入.nextInt(); 20 總成績 += 單科成績; 21 System.out.println(學生姓名+"的前"+(i+1)+"門功課的成績和是:"+總成績); 22 } 23 System.out.println(學生姓名+"的總成績是:"+總成績); 24 平均分 = 總成績/5; 25 System.out.println(學生姓名+"的平均分是:"+平均分); 26 27 } 28 29 }
最后,我們來使用java中的for循環輸出點陣的圖形
1 package com.student.exam; 2 3 public class PrintTX { 4 public static void main(String[] args) { 5 printJX(); 6 printPXSBX(); 7 printSJX(); 8 9 } 10 //打印矩形 11 private static void printJX(){ 12 for(int i=1;i<=5;i++){ 13 for(int j=1;j<=5;j++){ 14 System.out.print("*"); 15 } 16 System.out.println(); 17 } 18 } 19 //打印平行四邊形 20 private static void printPXSBX(){ 21 for(int i=1;i<=5;i++){ 22 for(int k=1;k<=5-i;k++){ 23 System.out.print(" "); 24 } 25 for(int j=1;j<=5;j++){ 26 System.out.print("*"); 27 } 28 System.out.println(); 29 } 30 } 31 //打印三角形 32 private static void printSJX() { 33 for(int i=1;i<=5;i++){ 34 for(int k=1;k<=5-i;k++){ 35 System.out.print(" "); 36 } 37 for(int j=1;j<=2*i-1;j++){ 38 System.out.print("*"); 39 } 40 System.out.println(); 41 } 42 43 } 44 45 }
結果如下:
*****
*****
*****
*****
*****
*****
*****
*****
*****
*****
*
***
*****
*******
*********
----------------