For循环
- 虽然所有的循环结构都可以用while和do···while表示,但是java提供了另一种语句——for循环,使循环结构
变得更加简单 - for循环语句是支持迭代的一种通用结构,是最有效的,最灵活的循环结构
- for循环执行次数是在执行前就确定的。语法格式如下:
for(初始化;布尔表达式;更行){
//代码语句
}
public class ForDem01 {
public static void main(String[] args) {
//初始化条件
int a = 1;
//条件判断
while (a <= 100) {
//循环体
System.out.println(a);
//迭代
a += 2;
}
System.out.println("while循环结束!");
//初始化//条件判断//迭代
for(int i =1;i<=100;i++ ){
System.out.println(i);
}
System.out.println("for循环结束");
}
}
第一个输出结果为1357···
while循环结束!
第二个输出结果为1234···
for循环结束!
练习
- 计算0到100之间的奇数和偶数的和
public class ForDem02 {
public static void main(String[] args) {
// 计算0到100之间的奇数和偶数的和
int oddSum = 0;
int evenSum = 0;
for (int i = 0; i < 100; i++) {
if (i % 2 != 0) {
oddSum += i;
} else {
evenSum += i;
}
}
System.out.println("奇数和为:"+oddSum);
System.out.println("偶数和为:"+evenSum);
}
}
输出结果为:
奇数和为:2500
偶数和为:2450
2.用while或for循环输出1·1000之间能被5整除的数,并且每行输出3个
public class ForDem03 {
public static void main(String[] args) {
//用while或for循环输出1·1000之间能被5整除的数,并且每行输出3个
for (int i = 0; i <= 1000; i++) {
if (i % 5 == 0) {
//输出结果+制表
System.out.print(i+"\t");
}
if (i % (5 * 3) == 0) {
//换行
System.out.println();
//System.out.print("\n");
//println 输出会完全换行
//print 输出完全不会换行
}
}
}
}
输出结果:
0
5 10 15
20 25 30
35 40 45
50 55 60
65 70 75
80 85 90
95 100 105
110 115 120
125 130 135
140 145 150
155 160 165
170 175 180
185 190 195
200 205 210
215 220 225
230 235 240
245 250 255
260 265 270
275 280 285
290 295 300
305 310 315
320 325 330
335 340 345
350 355 360
365 370 375
380 385 390
395 400 405
410 415 420
425 430 435
440 445 450
455 460 465
470 475 480
485 490 495
500 505 510
515 520 525
530 535 540
545 550 555
560 565 570
575 580 585
590 595 600
605 610 615
620 625 630
635 640 645
650 655 660
665 670 675
680 685 690
695 700 705
710 715 720
725 730 735
740 745 750
755 760 765
770 775 780
785 790 795
800 805 810
815 820 825
830 835 840
845 850 855
860 865 870
875 880 885
890 895 900
905 910 915
920 925 930
935 940 945
950 955 960
965 970 975
980 985 990
995 1000
打印九九乘法表
public class ForDem04 {
public static void main(String[] args) {
//打印九九乘法表
//先打印第一列
//把固定的1用循环包裹起来
//去掉重复项 i<=j
//调整样式
//j++先用后加
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();
}
}
}
输出结果:
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
增强for循环
- 主要用于数组或集合
- 声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此时数组元素的值相等
- 表达式:表达式是要访问的数组名,或者是返回值为数组的方法
语法格式:
for(声明语句:表达式){
//代码句子
}
public class ForDem05 {
public static void main(String[] args) {
//定义一个数组
int[]numbers={10,20,30,40,50};
//遍历数组元素
for (int x:numbers){
System.out.println(x);
}
}
}
输出结果:
10
20
30
40
50
练习
- 打印三角形
public class TestDem {
public static void main(String[] args) {
for (int i = 1; i <= 5; i++) {
for (int j = 5; j>=i; j--) {
System.out.print(" ");
}
for (int j = 1; j<=i; j++) {
System.out.print("*");
}
for (int j =1; j < i; j++) {
System.out.print("+");
}
System.out.println();
}
}
}
输出结果:
*
**+
***++
****+++
*****++++