Day005 for循环

for循环



  • 虽然所有循环结构都可以用while或者do-while表示,但java提供了另一种语句--for循环,使一些循环结构变得更加简单。

  • for循环语句是支持迭代的一种通用结构,是最有效、最灵活的循环结构。

  • for循环执行的次数是在执行前就确定的。语法格式如下:

    for(初始化;布尔表达式;更新){
        //代码语句
    }
    
    	int a=1;//初始化条件
    
            while(a<=100)//条件判断
            {
                System.out.println(a);//循环体
                a++;//迭代
            }
    
            System.out.println("while循环结束");
    
            //初始化值//条件判断//迭代
            for(int i=1;i<=100;i++){
                System.out.println(i);
            }
    
            System.out.println("for循环结束");
    

for循环快捷键

100.for+回车

fori+回车

死循环的写法

for(;;){
    
}

练习1:计算0~100之间的奇数和与偶数和

even:偶数 old:奇数

  	//计算0~100之间奇数和与偶数和

        int sumEven=0;//偶数和
        int sumOld=0;//奇数和

        for (int i = 0; i <=100; i++) {
            if(i%2==1){
                sumOld+=i;
            }else
            {
                sumEven+=i;
            }
        }

        System.out.println("奇数和为"+sumOld);
        System.out.println("偶数和为"+sumEven);

输出结果

奇数和为2500
偶数和为2550

练习2:用while或for循环输出1-1000之间能被5整除的数,并且每行输出3个

\t 制表符 \n换行符

print() 输出后不会换行

println() 输出后换行

   	//练习2:用while或for循环输出1-1000之间能被5整除的数,并且每行输出3个
        for (int i = 0; i <= 1000; i++) {
            if(i%5==0){
                System.out.print(i+"\t");
            }
            if(i%15==0){
                System.out.print("\n");
            }
        }

输出结果

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	

练习三:打印九九乘法表

        for (int j = 1; j < 10; j++) {
            for (int i = 1; i <= j; i++) {
                System.out.print(i+"*"+j+"="+i*j+'\t');
            }
            System.out.println();
        }

输出结果

1*1=1	
1*2=2	2*2=4	
1*3=3	2*3=6	3*3=9	
1*4=4	2*4=8	3*4=12	4*4=16	
1*5=5	2*5=10	3*5=15	4*5=20	5*5=25	
1*6=6	2*6=12	3*6=18	4*6=24	5*6=30	6*6=36	
1*7=7	2*7=14	3*7=21	4*7=28	5*7=35	6*7=42	7*7=49	
1*8=8	2*8=16	3*8=24	4*8=32	5*8=40	6*8=48	7*8=56	8*8=64	
1*9=9	2*9=18	3*9=27	4*9=36	5*9=45	6*9=54	7*9=63	8*9=72	9*9=81	

增强for循环

  • jdk5引入了一种用于数组和集合的增强for循环

  • 语法

    for(声明语句:表达式){
    	//代码
    }
    

    正常的for循环遍历数组

    int[] numbers={10,20,30,40,50};//定义一个数组
    
    for(int i=0;i<numbers.length;i++){
       System.out.println(numbers[i]);
    }
    

    增强for循环遍历数组

    int[] numbers={10,20,30,40,50};//定义一个数组
    
    for(int x:numbers){
        System.out.println(x);
    }
    

break、continue、goto

  • break:在任何循环语句的主体部分,均可用break强行退出循环,不执行循环中剩余的语句。(也能用在switch语句中)
  • continue:语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定

break例子

 	int i= 0;
        while (i<100){
            i++;
            if(i==30){
                break;
            }
        }
        System.out.println(i);

输出结果

30

continue例子

 	int i=0;
        while (i<10){
            i++;
            if(i%3==0){
                System.out.println();
                continue;
            }
            System.out.print(i+"\t");
        }

输出结果

1	2	
4	5	
7	8	
10	

break和continue的区别

break(辞职):不干了,跳出循环

continue(请假):这次请个假,循环到下次接着干

goto(了解就行,不建议使用)

  • goto关键字很早就在程序设计语言中出现,尽管goto是java的一个关键字,但并未在语言中得到正式使用;java中没有goto。然而,在break和continue这两个关键字的身上,我们任然能看到一些goto的影子----带标签的break和continue。
  • “标签”是指后面跟一个冒号的标识符,例如 :label:
  • 对于java来说唯一用到标签的地方是在循环语句之前,而在循环之前设置标签的唯一理由是:我们希望在其中嵌套另一个循环,由于break和continue关键字通常只中断当前循环,但若随同标签使用,它们就会中断到存在标签的地方。

标签例子(打印101-150之间的所有质数)

        //打印101-150之间的所有质数
        //质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。
        int count=0;

        //不建议使用
        outer:for (int i = 101; i <150 ; i++) {
            for (int j=2;j<i/2;j++){
                if(i%j==0){
                    continue outer;
                }
            }
            System.out.print(i+"\t");
        }

输出结果

101	103	107	109	113	127	131	137	139	149	

练习 打印三角形

	//打印三角形 5行
        //行
        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();
        }

输出结果

     *
    ***
   *****
  *******
 *********

狂神说java

posted @ 2021-05-05 13:01  南方风  阅读(111)  评论(0)    收藏  举报