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

Day005 for循环的更多相关文章

  1. 【.net 深呼吸】细说CodeDom(8):分支与循环

    有人会问,为啥 CodeDom 不会生成 switch 语句,为啥没生成 while 语句之类.要注意,CodeDom只关心代码逻辑,而不是语法,语法是给写代码的人用的.如果用.net的“反编译”工具 ...

  2. Recurrent Neural Network系列1--RNN(循环神经网络)概述

    作者:zhbzz2007 出处:http://www.cnblogs.com/zhbzz2007 欢迎转载,也请保留这段声明.谢谢! 本文翻译自 RECURRENT NEURAL NETWORKS T ...

  3. Python学习--04条件控制与循环结构

    Python学习--04条件控制与循环结构 条件控制 在Python程序中,用if语句实现条件控制. 语法格式: if <条件判断1>: <执行1> elif <条件判断 ...

  4. 模仿Linux内核kfifo实现的循环缓存

    想实现个循环缓冲区(Circular Buffer),搜了些资料多数是基于循环队列的实现方式.使用一个变量存放缓冲区中的数据长度或者空出来一个空间来判断缓冲区是否满了.偶然间看到分析Linux内核的循 ...

  5. 【JS基础】循环

    for 循环的语法: for (语句 1; 语句 2; 语句 3) { 被执行的代码块 } 语句 1 在循环(代码块)开始前执行 语句 2 定义运行循环(代码块)的条件 语句 3 在循环(代码块)已被 ...

  6. 【python之路4】循环语句之while

    1.while 循环语句 #!/usr/bin/env python # -*- coding:utf-8 -*- import time bol = True while bol: print '1 ...

  7. To Java程序员:切勿用普通for循环遍历LinkedList

    ArrayList与LinkedList的普通for循环遍历 对于大部分Java程序员朋友们来说,可能平时使用得最多的List就是ArrayList,对于ArrayList的遍历,一般用如下写法: p ...

  8. JavaScript单线程和浏览器事件循环简述

    JavaScript单线程 在上篇博客<Promise的前世今生和妙用技巧>的开篇中,我们曾简述了JavaScript的单线程机制和浏览器的事件模型.应很多网友的回复,在这篇文章中将继续展 ...

  9. .NET基础 一步步 一幕幕[循环、逻辑语句块]

    循环.逻辑语句块   好久不写博客了,断更了好几天了,从上周五到今天,从北京到上海,跨越了1213.0公里,从一个熟悉的城市到陌生的城市,还好本人适应力比较好,还有感谢小伙伴的接风咯,一切都不是事,好 ...

随机推荐

  1. ubuntu18.04+gunicorn+nginx+supervisor+mysql+redis安装django项目

    Ubuntu18.04 install Django project 项目准备: ECS 实例 (云服务器) 此安装部署方案适合本地ubuntu18.04系统安装和虚拟机中ubuntu18.04系统安 ...

  2. 安卓Media相关类测试demo

    最近在研究安卓系统给app开发者提供的标准Media相关的工具类,本人做了一些demo来测试这些工具的使用方法. 本demo包含若干apk源码,需要说明以下几点: 1. 构建方式 Makefile使用 ...

  3. java异常的 理解

    1.体系结构 java.lang.Object |----java.lang.Throwable |-------java.lang.Error:错误,java程序对此无能为力,不显式的处理 |--- ...

  4. Git常用命名

    文字整理: git config - - 可以配置git的参数,可以使用 git config --list查看已经配置的git参数. 其中有三个级别的保存位置, –system(本系统) –glob ...

  5. springcloud知识点总结

    一.SpringCloud面试题口述1.SpringCloud和DubboSpringCloud和Dubbo都是现在主流的微服务架构SpringCloud是Apache旗下的Spring体系下的微服务 ...

  6. python创建一个二维列表

    方法一:利用for-in语句来生成一个二维列表 a = [] 2 for i in range(10): 3 a.append([]) 4 for j in range(10): 5 a[i].app ...

  7. RichText实现动态输入关键字高亮颜色显示

    int a = 0; string[] kc = new string[40] { "private","protected","public&quo ...

  8. 2018ICPC南京 A. Adrien and Austin

    题目: 题意:1-N个石子每次只能取连续的1-K个问输赢.(一开始以为只是个简简单单的巴什游戏,激动的提交了一发wr了,再读了一遍题才发现是只能取连续的) 题解:当n==0或者k==1&&am ...

  9. DNS 缓存中毒--Kaminsky 攻击复现

    0x00 搭建实验环境 使用3台Ubuntu 16.04虚拟机,可到下面的参考链接下载 攻击的服务是BIND9,由于条件限制,这里使用本地的一台虚拟机当作远程DNS解析器,关闭了DNSSEC服务,其中 ...

  10. Web 前端 - 又不仅限于 Web 前端 - 协程锁问题

    前言 最近两天的 web 前端开发中,早前的锁实现 (自旋锁) 出现了一些不合理的现象,所以有了这片随笔 什么是协程锁?能点进这个博客的的你肯定是明白的,不明白的人根本搜不到我这随笔,不多做赘述. 一 ...