Java基础入门——循环中的for循环简单示例
首先来看看 for 的语法结构:
for(表达式1;表达式2;表达式3){
循环语句
}
或者更直观的表示为这样:
for(变量初始化;循环条件;迭代语句){
循环语句
}
for循环的执行流程是:
首先执行表达式1,一般是进行变量初始化操作,然后执行表达式2,即对循环条件进行判断,如果结果为真,则执行循环体;循环体执行完毕后,执行表达式3,改变循环变量的值,再次执行表达式2;结果为真,继续循环;如果结果为假,则终止循环,执行后面的语句。
无论执行多少次,表达式1仅执行一次。
我们举一个例子,编写一个小代码,来实现java代码1到100的求和?
1+2+3+……+100=?
packagecom.student.exam;
/**
*计算1到100的和
*/public classSummation {public static voidmain(String[] args) {int sum = 0; //声明变量sum存放计算的和,赋初值为0for(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 packagecom.student.exam;2 /**
3 * 使用for循环实现1到100的和4 * 两头相加进行计算5 * (1+100)+(2+99)+(3+98)+... ...+ (50+51)6 */
7 public classSummation2{8
9 public static voidmain(String[] args) {10 int sum = 0;11 for(int i=1,j=100;i
17 }
下面我们来实现计算学生成绩的for循环代码:
假定给出一个学生的5门功课的成绩,要求输出平均值
1 packagecom.student.exam;2 /**
3 * 使用for 循环4 * 输入学生的5们功课,查询该学生的总成绩和平均分数5 */
6 importjava.util.Scanner;7
8 public classAverageScores {9 public static voidmain(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 packagecom.student.exam;2 /**
3 * 使用for 循环4 * 输入学生的5们功课,查询该学生的总成绩和平均分数5 */
6 importjava.util.Scanner;7
8 public class求学生的平均成绩 {9 public static voidmain(String[] args) {10 int单科成绩;11 int 总成绩= 0;12 double 平均分 =0;13 Scanner 键盘输入 = newScanner(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 packagecom.student.exam;2
3 public classPrintTX {4 public static voidmain(String[] args) {5 printJX();6 printPXSBX();7 printSJX();8
9 }10 //打印矩形
11 private static voidprintJX(){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 voidprintPXSBX(){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 voidprintSJX() {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 }
结果如下:
*****
*****
*****
*****
*****
*****
*****
*****
*****
*****
*
***
*****
*******
*********
----------------