精华内容
下载资源
问答
  • Java的循环结构嵌套循环

    千次阅读 2020-01-12 17:18:38
    Java的循环结构嵌套循环Java的循环结构while 循环结构do...while 循环结构for 循环结构Java的嵌套循环概念循环控制语句breakcontinuereturnforeach 循环 Java的循环结构 Java 总共有三种循环结构,分别是while、do...

    Java的循环结构

    Java 总共有三种循环结构,分别是while、do…while、for。

    while 循环结构

    while 循环语法:

    while(布尔表达式) {
    	//功能语句
    }
    

    代码执行顺序:

    1. 判断小括号中的值是否为 true,如果为 true,执行功能语句。
    2. 执行完功能语句,继续判断小括号中的值,如果为 true,继续执行功能语句。
    3. 直到判断小括号中的值为 false,跳出循环。

    do…while 循环结构

    do…while 语法结构:

    do {
        //功能语句
    } while(布尔表达式);
    

    代码执行顺序:

    1. 首先执行 do 结构体里面的功能代码一次。
    2. 第一次判断 while() 结果为 ture。
    3. 执行 do 循环体。
    4. 第二次判断 while() 结果为 ture。
    5. 执行 do 循环体。
    6. 第 n 次判断 while() 结果为 false 循环结束。

    和while的区别:

    1. 语法结构上的区别。
    2. while 语句是先判断条件是否成立再执行语句,条件不符合后终止。do…while 是先执行语句再判断条件是否成立,条件不符合后终止。
    3. do…while 循环至少执行一次功能语句。

    for 循环结构

    for 语法结构:

    for (循环初始化语句A; 循环判断语句B; 循环后语句D) {
    	//功能语句C
    }
    

    执行顺序:

    1. 循环初始化语句A执行一次。
    2. B --> true ----> C ----> D。
    3. B --> true ----> C ----> D。
    4. B --> false,循环结束。

    特点:

    1. for ( ; ; ) {不加功能语句},死循环。
    2. for ( ; ; ) 后直接跟功能语句(1句)死循环。
    3. for ( ; ; ) 后跟两句功能语句,第二句报错,for 无法访问的语句。

    注意事项:

    • for (int i = 1; i <= 10; i++) 时 i 是属于该结构体内的变量,外部无法访问。

    Java的嵌套循环

    概念

    循环嵌套,循环里面还有循环,可以嵌套多层,不同的循环结构相互之间也可以嵌套。

    例如:

    //控制打印行数
    for(int i = 1;i<=5;i++){   
    	for(int k = 1; k <= 5 - i; k++) {
    		//控制打印一行的内容
    		System.out.print(" ");
    	}
    	for(int j = 1; j <= i; j++) {
    		//控制打印一行的内容
    		System.out.print("* ");
    	}
    	System.out.println(); 
    }
    

    建议:
    实际开发中不要嵌套太深,一般情况下嵌套一次足以。

    循环控制语句

    break

    特点:

    1. 循环结构结束不等于方法结束,for 循环结构体后面的语句还会正常运行
    2. break 只是终止当层循环:
    3. 如果在内层想要终止外层循环:可以给外层循环取一个别名,然后使用break 名字;结束外层循环。

    例如:

    class BreakTest {
        public static void main(String[] args) {
              test:for(int i = 0; i <= 5; i++) {
                  System.out.println(i);
                  for(int j = 0; j <= 5; j++) {
                    if(j == 3) {
    					break test;
    				}
    			}
    		} 
    	}
    }
    

    continue

    特点: 跳过当层当次循环,继续下一次循环

    return

    特点: 在循环中使用时结束方法,表示结束当前的方法

    注意事项:
    break、coutinue、return,后面都不能写语句。编译会报错:访问不到。

    foreach 循环

    foreach 语句是 Java1.5 的新特征之一,在遍历数组、集合方面,foreach 为开发人员提供了极大的方便。
    foreach 语句是 for 语句的特殊简化版本,但是 foreach 语句并不能完全取代for语句,然而,所有的 foreach 语句都可以改写为 for 语句版本。
    foreach 并不是一个关键字,习惯上将这种特殊的 for 语句格式称之为“foreach”语句。
    foreach的语句格式:

    for(元素类型t 元素变量x : 遍历对象obj) {
    	//引用了 x 的 java 语句;
    }
    

    foreach 相对于 for 循环,代码减少了,但是 foreach 依赖 IEnumerable(IEnumerable是一个接口,它定义一个方法 GetEnumerator,它返回一个 IEnumerator 接口,这允许只读访问一个集合,然后实现 IEnumerable 的集合可以与 foreach 语句一起使用)接口。在运行的时候效率低于普通 for 循环。当然了,在处理不确定循环次数的循环,或者循环次数需要计算的情况下,使用 foreach 比较方便。而且 foreach 的代码经过编译系统的优化后,和 for 循环的循环类似。可以说,foreach 语句是 for 语句的特殊简化版本,在遍历数组、集合方面,foreach 为开发人员提供了极大的方便。在进行复杂的循环设计时,还是应该使用 for 循环。

    使用场景:

    • 如果只是遍历集合或者数组,用 foreach 好些,快些。
    • 如果对集合中的值进行修改,并且确定循环次数就要用 for 循环了。

    Java8集合自带的foreach以及流的foreach

    Iterable接口中的默认实现:

    default void forEach(Consumer<? super T> action) {  
      Objects.requireNonNull(action);                        
        for (T t : this) {        
          action.accept(t);    
        } 
    }
    

    Java8流使用 foreach 打印所有的偶数示例:

    ArrayList<Integer> list = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5));
    list.stream()
      .filter(n -> n % 2 == 0)
      .forEach(System.out::println);
    

    使用集合的 foreach 迭代所有元素并打印示例:

    ArrayList<Integer> list = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5));
    list.forEach(System.out::println);
    

    使用 foreach 迭代Map:

    Map<String, Integer> map = new HashMap<>();
    map.put("A", 1);
    map.put("B", 2);
    map.put("C", 3);
    	
    // 1.Map entries
    map.entrySet().forEach(System.out::println);
    
    // 2.Map keys
    map.keySet().forEach(System.out::println);
    
    // 3. Map values
    map.values().forEach(System.out::println);
    

    自定义操作Map中的元素:

    Map<String, Integer> map = new HashMap<>();
    map.put("A", 1);
    map.put("B", 2);
    map.put("C", 3);
    
    // 1.Map entries
    Consumer<Map.Entry<String, Integer>> action = entry -> {
    	System.out.println("Key is " + entry.getKey());
    	System.out.println("Value is " + entry.getValue());
    	System.out.println();
    };
    map.entrySet().forEach(action);
    
    展开全文
  • java为我们提供了while do-while for三种循环结构 一.while语法结构: while(条件(布尔类型的)){ // 循环体具体做什么事情 } while循环执行流程: 一个循环可能会循环执行多次 第一次判断条件true,继续执行 第...

    java为我们提供了while do-while for三种循环结构
    一.while语法结构:
    while(条件(布尔类型的)){
    // 循环体具体做什么事情
    }

    while循环执行流程:

    1. 一个循环可能会循环执行多次
    1. 第一次判断条件true,继续执行
    2. 第二次判断条件true,继续执行
    3. 第三次判断条件true,继续执行
    4. 。。。。。
    5. 直到第n次判断条件false,终止循环

    举例:
    常用语法结构
    int i = 0; //A循环初始化语句
    while( i<=10 ){ //B循环判断语句
    // 循环体具体做什么事情//C循环功能语句
    i++; //D循环后语句
    }
    A ----->只会执行一次
    B ----->true---->C---->D
    B ----->true---->C---->D
    B ----->true---->C---->D

    B ----->false 循环结束

    二. do-while 语法结构
    do{
    // 循环体
    }while(条件);

    while循环执行流程:

    1. 首先执行do结构体里面的功能代码一次
    2. 第一次判断while()结果为ture
    3. 执行do循环体…
    4. 第二次判断while()结果为ture
    5. 执行do循环体…
    6. 第n次判断…while()…flase循环结束

    dowhlie 一定会执行一次循环体,while不一定会执行一次循环体

    三.for语法结构
    for(初始A;条件判断B;循环后操作C){
    //循环体C
    }

    for的执行流程:
    初始化语句会执行一次;只会执行一次
    整个for循环结构中的 A 只会执行一次
    循环第一次:A→B(true)→D→C
    第二次:B(true)→D→C
    第三次:B(true)→D→C

    第n次: B(false) 结束整个循环
    四、嵌套循环
    概念:循环嵌套 循环里面还有循环,可以嵌套多层,不同的循环结构相互之间也可以嵌套。
    for(){
    for(){
    }
    }

    展开全文
  • 第五周—循环结构选择结构嵌套

    千次阅读 2016-09-29 09:13:05
    问题与代码: 文件名称:循环结构选择结构嵌套 作者:邓哲 时间:2016年9月 知识点总结:要先搞清顺序在进行嵌套 学习心得:流程图一定要对流程十分清晰。

    问题与代码:

    文件名称:循环结构与选择结构嵌套

    作者:邓哲

    时间:2016年9月


    知识点总结:要先搞清顺序在进行嵌套

    学习心得:流程图一定要对流程十分清晰。

    展开全文
  • 1.选择结构 if语句 格式1: if (关系表达式) { 语句体; } 其它语句; public static void main(String[] args) { System.out.println("开始"); //定义两个变量 int a = 10; in...

    1.选择结构

    • if语句
      格式1: if (关系表达式) {
      语句体;
      }
      其它语句;
    public static void main(String[] args) {
                    System.out.println("开始");
                    //定义两个变量 
                    int a = 10;
                    int b = 20;
                    //需求:判断a和b的值是否相等,如果相等,就在控制台输出:a等于b 
                    if (a == b) {
                        System.out.println("a等于b");
                    }
                    //需求:判断a和c的值是否相等,如果相等,就在控制台输出:a等于c
                    int c = 10;
                    if (a == c) {
                        System.out.println("a等于c");
                    }
                    System.out.println("结束");
                }
    

    运行结果
    在这里插入图片描述

    • 格式2:
      if (关系表达式)
      { 语句体1;
      } else {
      语句体2;
      }
      其它语句;
    public static void main(String[] args) {
                System.out.println("开始");
                //定义两个变量 
                int a = 10; int b = 20; b = 5; 
                // 需求:判断a是否大于b,如果是,在控制台输出:a的值大于b,否则,在控制台输出:a的值不大于b 
                if (a > b) {
                    System.out.println("a的值大于b");
                } else {
                    System.out.println("a的值不大于b");
                }
                System.out.println("结束");
            }
    

    运行结果
    在这里插入图片描述
    -格式3
    if (关系表达式1) {
    语句体1;
    } else if (关系表达式2) {
    语句体2;
    }

    public static void main(String[] args) {
                    //小明的考试成绩未知,可以使用键盘录入的方式获取值 
                    Scanner sc = new Scanner(System.in);
                    System.out.println("请输入一个分数:");
                    int score = sc.nextInt();
                    //由于奖励种类较多,属于多种判断,采用if...else...if格式实现 
                    // 为每种判断设置对应的条件 
                    // 为每种判断设置对应的奖励 
                    // 数据测试:正确数据,边界数据,错误数据 
                    if (score > 100 || score < 0) {
                        System.out.println("你输入的分数有误");
                    } else if (score >= 95 && score <= 100) {
                        System.out.println("山地自行车一辆");
                    } else if (score >= 90 && score <= 94) {
                        System.out.println("游乐场玩一次");
                    } else if (score >= 80 && score <= 89) {
                        System.out.println("变形金刚玩具一个");
                    } else {
                        System.out.println("胖揍一顿");
                    }
                }
    
    • 选择结构switch语句
      switch(表达式) {
      case 常量值1:
      语句体1;
      break;
      case 常量值2:
      语句体2;
      break;

      default:
      语句体n+1;
      break;
      }
      //其它语句
    public static void main(String[] args) {
                    //定义月份变量,判断季节 
                    int month = 6;
                    //switch语句实现选择 
                    switch (month) {
                        case 1:
                            System.out.println("冬季");
                            break;
                        case 2:
                            System.out.println("冬季");
                            break;
                        case 3:
                            System.out.println("春季");
                            break;
                        case 4:
                            System.out.println("春季");
                            break;
                        case 5:
                            System.out.println("春季");
                            break;
                        case 6:
                            System.out.println("夏季");
                            break;
                        case 7:
                            System.out.println("夏季");
                            break;
                        case 8:
                            System.out.println("夏季");
                            break;
                        case 9:
                            System.out.println("秋季");
                            break;
                        case 10:
                            System.out.println("秋季");
                            break;
                        case 11:
                            System.out.println("秋季");
                            break;
                        case 12:
                            System.out.println("冬季");
                            break;
                        default:
                            System.out.println("你输入的月份数字有误");
                            break;
                    }
                }
    

    2.循环结构

    概述
    循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个
    循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去,形成死循环。

    1. for循环
      格式:
      for(初始化表达式①; 布尔表达式②; 步进表达式④){
      循环体③
      }
      //其它语句
    public static void main(String[] args) {
                    //需求:输出数据1-5 
                    for (int i = 1; i <= 5; i++) {
                        System.out.println(i);
                    }
                    System.out.println("--------");
                    //需求:输出数据5-1 
                    for (int i = 5; i >= 1; i--) {
                        System.out.println(i);
                    }
                }
    

    运行结果
    在这里插入图片描述
    2. while循环
    格式:
    初始化表达式①
    while(布尔表达式②){
    循环体③
    步进表达式④
    }
    //其它语句

    public static void main(String[] args) {
                    //for循环实现打印10次HelloWorld 
                    for (int i = 1; i <= 10; i++) {
                        System.out.println("HelloWorld");
                    }
                    //while循环实现打印10次HelloWorld //定义初始化变量 
                    int i = 1; //循环条件<=10
                    while (i <= 10) {
                        System.out.println("HelloWorld");
                        //步进 
                        i++;
                    }
                }
    

    运行结果
    在这里插入图片描述
    3. do while循环
    格式:
    初始化表达式①
    do{
    循环体③
    步进表达式④
    }while(布尔表达式②);
    //其它语句

    public static void main(String[] args) {
                    int x = 1;
                    do {
                        System.out.println("HelloWorld");
                        x++;
                    } while (x <= 10);
                }
    

    运行结果同上

    • 循环跳转
      break语句:
      使用场景:终止switch或者循环
      在选择结构switch语句中
      在循环语句中
      离开使用场景的存在是没有意义的
     public static void main(String[] args) {
                    for (int i = 1; i <= 10; i++) {
                        if (i % 5 == 0) {
                            break;
                        }
                        System.out.println("HelloWorld" + i);
                    }
                }
    

    运行结果
    在这里插入图片描述
    continue语句
    使用场景:结束本次循环,继续下一次的循环
    只能使用在循环语句中

    public static void main(String[] args) {
            for (int i = 1; i <= 10; i++) {
                if (i % 5 == 0) {
                    continue;
                }
                System.out.println("HelloWorld" + i);
            }
        }
    

    运行结果
    在这里插入图片描述

    3.循环嵌套

    所谓嵌套循环,是指一个循环的循环体是另一个循环。比如for循环里面还有一个for循环,就是嵌套循环。总共的循环次数=外循环次数*内循环次数

    public static void main(String[] args) {
            //打印2021年至2023年月份 
            // 年份是外循环,3年;月份是内循环,12月 
            for (int i = 2021; i <= 2023; i++) {
                for (int j = 1; j <= 12; j++) {
                    //不换行打印星号 
                    System.out.print(i + "年" + j + "月 ");
                }
                //内循环打印12个月后,需要一次换行 
                System.out.println();
            }
        }
    

    运行结果
    在这里插入图片描述

    展开全文
  • C#循环结构嵌套循环 在一个循环体中包含另一个循环,称为“嵌套循环”。当2个循环嵌套的时候,外层循环体执行一次,内层循环体执行 n 次( n 是内层循环的次数)。请看下面的例子: 运行结果: 比较代码和...
  • 循环结构(二)——循环嵌套

    千次阅读 2018-12-12 15:23:24
    三种循环可互相嵌套,层数不限 嵌套循环的执行流程
  • 10. C语言 -- 循环结构:for 语句和嵌套循环

    万次阅读 多人点赞 2018-10-19 19:18:09
    本文主要讲述 C 语言循环结构中的 for 语句,介绍了表达式的省略、逗号表达式和在表达式中定义变量这三种灵活的使用方式,举例说明了循环嵌套的使用方式。
  • (一.)break语句用于提前终止循环;continue用于提前结束本次循环。...2.当循环结构结束后再开始执行最后的的printf。 (二.)多个循环条件 #include “stdio.h” int main() { float sum=0,money=0; i...
  • 循环嵌套结构

    2019-11-13 14:23:33
    一个循环体内又包含另一个完整的循环结构,称之为循环的嵌套。内嵌的循环中还可以嵌套循环,这就是多层循环。 输出1-100之间的所有素数 for ( int i = 1 ; i 100 ; i ++ ) { boolean t = ...
  • 程序流程控制主要包括三种,分别为判断结构、选择结构以及循环结构,今天要讲的是循环结构,其中循环结构有:while、do...while以及for循环。如何通过循环结构来打印指直角三角形呢?这就涉及到了嵌套循环。所谓嵌套...
  • 循环嵌套

    2018-01-09 09:41:36
    一个循环体内又包含另一个完整的循环结构,称之为循环的嵌套。内嵌的循环中还可以嵌套循环,这就是多层循环。不管在什么语言中,关于循环嵌套的概念都是一样的。例如在电影院找座位号,需要知道第几排第几列才能准确...
  • Python选择结构和循环结构

    千次阅读 多人点赞 2020-03-20 23:19:10
    选择循环结构中,条件表达式的值只要不是False、0(或0.0、0j等)、空值None、空列表、空元组、空集合、空字典、空字符串、空range对象或其他空迭代对象,Python解释器均认为与True等价。 (1)关系运算符 ...
  • 嵌套循环

    2019-04-13 16:58:43
    //一个循环结构包含另一个完整的循环结构,循环结构可以任意嵌套,没有层次的限制 //但是考虑到效率和性能问题,建议嵌套的越少越好 //要求控制台输入三个班级,每个班级5名学生的成绩,计算每个班级学生成绩的...
  • 在python中,除了while循环与for循环,还有循环嵌套循环嵌套就是在一个循环体里嵌入另一个循环。以下场景便模拟了循环嵌套与跳出循环的现实场景: 在一次考试结束后,学校需要统计每位同学的考试总成绩。在这个场景...
  • 循环嵌套循环循环) ...(循环选择结构嵌套) 视频例题,47:40左右那个例题错误,while(n=0) 注意:i++之类的语句要记得给i赋初值 视频中作业99乘法表,正在编写中,待续 作业已经写
  • 循环嵌套

    2018-01-03 01:43:32
    循环嵌套
  • break语句:终止当前循环,继续执行循环语句的下一语句; continue语句:跳过循环体的后面语句,开始下一个循环; 例:求[100,200]之间第一个能被21整除的整数 for n=100:200 %循环语句 if rem(n,21)~=0 ...
  • 多层循环嵌套结构的设计

    千次阅读 2014-09-05 16:07:32
    在很多编程的书籍中会给出这样的建议:  在多重循环中,如果有可能,应当将最长的循环放在最内层,最短的循环放在最外层,以减少CPU 跨切循环层的次数。  这个“跨循环层”的概念本身是说,...看下面两个循环结构
  • 文章目录4.1 顺序结构4.1.1 赋值语句4.1.2 输入语句4.1.3 输出语句4.1.4 复合语句4.1.5 应用实例4.2 选择结构4.2.1 if条件语句4.2.2 switch结构4.3 循环结构4.3.1 for循环语句4.3.2 whlie、do…while语句4.3.3 循环...
  • 46. Python中 选择结构嵌套

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 151,784
精华内容 60,713
关键字:

循环结构可以嵌套选择结构吗