精华内容
下载资源
问答
  • 多重for循环嵌套

    千次阅读 多人点赞 2017-05-27 08:15:07
    for循环定义: 同过一个简单的表达式,...一个复杂的for循环中可以嵌套多个同级的for循环,一般表现如下: for(变量初始值;变量取值范围;变量自增/自减){ for(变量初始值;变量取值范围;变量自增/自减){ /

    for循环定义:
    同过一个简单的表达式,来完成多次重复性的代码功能;格式如下:
    for(变量初始值;变量取值范围;变量自增/自减){
    //代码块;
    }
    一个复杂的for循环中可以嵌套多个同级的for循环,一般表现如下:
    for(变量初始值;变量取值范围;变量自增/自减){
    for(变量初始值;变量取值范围;变量自增/自减){
    //代码块
    }
    for(变量初始值;变量取值范围;变量自增/自减){
    //代码块
    }
    }
    多重for循环的执行顺序是,最外面的for循环执行一次,里面的同层级的for循环就会执行一轮;举个例子,用“*”输出一个4*4的正方形。

    “`
    这里写代码片
    package com.for.rumple;

    public class ForTest {

    public static void main(String[] args) {
    //第一层for循环用来控制输出的行数;
        for (int i = 1; i <= 4; i++) {
    //第二层for循环用来控制输出的列数;
            for (int j = 1; j <= 4; j++) {
                System.out.print("*");
            }
    //外层的for执行一次,就
            System.out.println();
        }
    }
    

    }

    效果图:
    这里写图片描述
    下面展示一个三层for循环打印的图案:
    源码:
    package com.for.rumple;

    public class ForTest01 {

    public static void main(String[] args) {
        for (int i = 1; i <= 5; i++) {
            for (int k = 5 - i; k > 0; k--) {
                System.out.print("-");
            }
            for (int j = 1; j < 2 * i; j++) {
                System.out.print("*");
            }
            for (int k = 5 - i; k > 0; k--) {
                System.out.print("-");
            }
            System.out.println();
        }
    }
    

    }
    效果图(分两张讲解):
    这里写图片描述

    这里写图片描述

    展开全文
  • 目前全部使用的是for循环进行赋值,这样运算速度非常慢,请问该怎样提高运算速度? 代码部分如下: ``` OP.B_1 = 0.1:0.1:1.8; OP.B_2 = 0.1:0.1:1.8; OP.B_3= 0.1:0.1:1.8; OP.B_4 = 0.1:0.1:1.8; OP.B_5...
  • 跳出单个循环:continue for (int i = 0; i <5 ; i++) { if (i == 3) { continue; } System.out.print(i + " ");...跳出一层for循环: for (int i = 0; i <5 ; i++) { if (i == 3) {...

    跳出单个循环:continue

    for (int i = 0; i <5 ; i++) {
    			if (i == 3) {
    				continue;
    			}
    			System.out.print(i + " ");
    		}
    

    输出:

    0 1 2 4
    

    跳出一层for循环:

    
    		for (int i = 0; i <5 ; i++) {
    			if (i == 3) {
    				break;
    			}
    			System.out.print(i + " ");
    		}
    

    输出:

    0 1 2
    

    跳出两层for循环:

    
    		tag:	for (int i = 0; i < 5; i++) {
    			for (int j = 0; j < 3; j++) {
    				if (i == 2) {
    					break tag;
    				}
    				System.out.println("*****");
    			}
    		}
    		// 这里外层循环执行两次就终止了
    

    输出:

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

    总结:

    利用标签,跳出标签所在的循环

    展开全文
  • 多重for循环嵌套中语句的执行次数

    千次阅读 2019-08-11 20:13:23
    for (int i = 0; i < n; i++) { for (int j = i + 1; j < n; j++) { for (int k = j + 1; k < n; k++) { count++; } } } 以上代码中,求count++语句的执行次数。 其实这段代码中求count++...

    实例代码

    for (int i = 0; i < n; i++) {
        for (int j = i + 1; j < n; j++) {
           for (int k = j + 1; k < n; k++) {
                count++;
           }
        }
    }
    

    以上代码中,求count++语句的执行次数。

    其实这段代码中求count++语句的执行次数等价于:从n个整数中取出三个整数的组合总共有多少种(不考虑顺序,1,2,3 2,3,1 等算一种)。

    求解过程

    n &gt; 2 时 : n&gt;2时: n>2

          当 i = 0 时 , j = 1 ∼ ( n − 1 ) , c o u n t 的 执 行 次 数 为 ( ( n − 1 ) − 1 ) + ( n − 3 ) + ( n − 4 ) + ⋯ + 2 + 1 当i=0时,j=1\sim (n-1),count的执行次数为((n-1)-1)+(n-3)+(n-4)+\cdots+2+1 i=0j=1(n1)count((n1)1)+(n3)+(n4)++2+1

          当 i = 1 时 , j = 2 ∼ ( n − 1 ) , c o u n t 的 执 行 次 数 为 ( ( n − 1 ) − 2 ) + ( n − 4 ) + ( n − 5 ) ⋯ + 2 + 1 当i=1时,j=2\sim (n-1),count的执行次数为((n-1)-2)+(n-4)+(n-5)\cdots+2+1 i=1j=2(n1)count((n1)2)+(n4)+(n5)+2+1

          当 i = 2 时 , j = 3 ∼ ( n − 1 ) , c o u n t 的 执 行 次 数 为 ( ( n − 1 ) − 3 ) + ( n − 5 ) + ⋯ + 2 + 1 当i=2时,j=3\sim (n-1),count的执行次数为((n-1)-3)+(n-5)+\cdots+2+1 i=2j=3(n1)count((n1)3)+(n5)++2+1

                                              ⋮ \vdots

          当 i = n − 3 时 , j = ( n − 2 ) ∼ ( n − 1 ) , c o u n t 的 执 行 次 数 为 1 当i=n-3时,j=(n-2)\sim (n-1),count的执行次数为1 i=n3j=(n2)(n1)count1

          当 i = n − 2 时 , j = ( n − 1 ) , c o u n t 的 执 行 次 数 为 0 当i=n-2时,j=(n-1),count的执行次数为0 i=n2j=(n1)count0

    可以看出,每次i产生变化时,count++语句的执行次数都是一个等差数列,可由等差数列求和公式:
    S n = n ( a 1 + a n ) 2 = 1 + 2 + ⋯ + n = n ( 1 + n ) 2 = n 2 + n 2 S_n=\frac{n(a_1+a_n)}{2}=1+2+\cdots+n=\frac{n(1+n)}{2}=\frac{n^2+n}{2} Sn=2n(a1+an)=1+2++n=2n(1+n)=2n2+n
    count++总执行次数 S n : S_n: Sn:
    S n = ( n − 2 ) 2 + ( n − 2 ) 2 + ( n − 3 ) 2 + ( n − 3 ) 2 + ⋯ + 2 2 + 2 2 + 1 2 + 1 2 = ( ( n − 2 ) 2 + ( n − 3 ) 2 + ⋯ + 2 2 + 1 2 ) + ( ( n − 2 ) + ( n − 3 ) + ⋯ + 2 + 1 ) 2 S_n=\frac{(n-2)^2+(n-2)}{2}+\frac{(n-3)^2+(n-3)}{2}+\cdots+\frac{2^2+2}{2}+\frac{1^2+1}{2}\\ =\frac{((n-2)^2+(n-3)^2+\cdots+2^2+1^2)+((n-2)+(n-3)+\cdots+2+1)}{2} Sn=2(n2)2+(n2)+2(n3)2+(n3)++222+2+212+1=2((n2)2+(n3)2++22+12)+((n2)+(n3)++2+1)
    再由公式:
    1 2 + 2 2 + ⋯ + n 2 = n ( n + 1 ) ( 2 n + 1 ) 6 1^2+2^2+\cdots+n^2=\frac{n(n+1)(2n+1)}{6} 12+22++n2=6n(n+1)(2n+1)
    得:
    S n = ( n − 2 ) ( n − 2 + 1 ) ( 2 ( n − 2 ) + 1 ) 6 + ( n − 2 ) 2 + ( n − 2 ) 2 2 = n ( n − 1 ) ( n − 2 ) 6 S_n=\frac{\frac{(n-2)(n-2+1)(2(n-2)+1)}{6}+\frac{(n-2)^2+(n-2)}{2}}{2}\\ =\frac{n(n-1)(n-2)}{6} Sn=26(n2)(n2+1)(2(n2)+1)+2(n2)2+(n2)=6n(n1)(n2)
    0 &lt; n &lt; 2 时 : 0&lt;n&lt;2时: 0<n<2

    count++的执行次数为0, n &gt; 2 n&gt;2 n>2的公式仍适用于 0 &lt; n &lt; 2 0&lt;n&lt;2 0<n<2的情况。

    即:

    count++语句的执行次数为 n ( n − 1 ) ( n − 2 ) 6 \frac{n(n-1)(n-2)}{6} 6n(n1)(n2)

    参考文章

    一个小问题:计算3层循环的执行次数

    展开全文
  • 以下是测试代码,我的实际代码看起来几乎相似,其中我使用原始矩阵而...在Python中优化多重嵌套for循环import timeimport numpy as npa = 1000b = 500sum2,sum3,sum4 = 0t0 = time.time()x = np.random.random(a*a)...

    以下是测试代码,我的实际代码看起来几乎相似,其中我使用原始矩阵而非随机生成。我怎样才能优化这个嵌套for循环。我知道这是可能的python,但我无法这样做。在Python中优化多重嵌套for循环

    import time

    import numpy as np

    a = 1000

    b = 500

    sum2,sum3,sum4 = 0

    t0 = time.time()

    x = np.random.random(a*a).reshape([a,a])

    for outer1 in xrange(0,a):

    for inner1 in xrange(0,b):

    for outer2 in xrange(0,a):

    for inner2 in xrange(0, a):

    sum2 += x[outer2][inner2] #this is not the only operation I have

    for outer3 in xrange(0,a):

    for inner3 in xrange(0, a):

    sum3 += x[outer3][inner3] #this is not the only operation I have

    for outer4 in xrange(0,a):

    for inner4 in xrange(0, a):

    sum4 += x[outer4][inner4] #this is not the only operation I have

    print time.time() - t0

    print 'sum2: '+str(sum2)+' sum3: '+str(sum3)+' sum4: '+str(sum4)

    我正在使用python 2.7。 谢谢。

    2012-01-21

    Maggie

    +0

    您所做的额外计算使您可以优化代码的方式发生重大变化。而且,更可能是造成瓶颈的原因,而不是这些总和。 –

    展开全文
  • 关于For循环嵌套的简单理解

    万次阅读 多人点赞 2018-11-25 14:50:14
    一个循环结构内可以含有另一个循环,称为循环嵌套,又称多重循环。常用的循环嵌套是二重循环,外层循环称为 外循环,内层循环称为内循环。 二:双重循环: 1.双重循环结构 for (循环变量初始化;终止条件表达式;循环...
  • 双重for循环嵌套for循环

    多人点赞 2021-10-13 16:20:32
    双重for循环就是在一个for循环里在嵌套另一个for循环,即两个循环嵌套,还有多重循环嵌套的情况,但用的比较少,一般常用的是两个循环嵌套,很少使用多重循环,因为for循环多了会导致代码执行的效率低,而且容易死机...
  • continue和break可以改变循环的执行流程,但在多重循环中,这两条语句无法直接从内层循环跳转到外层循环。在C语言中,可以通过goto语句实现多重循环的跳转,但在非循环结构中使用goto语句会使程序的结构紊乱,可读性...
  • 目的:多重嵌套循环的情况下,最里面一层循环中止时,直接中止整个多重嵌套循环.1 for i in range(10): # 循环22 for j in range(9): # 循环13 print(j)4 if i ==3 and j == 2:5 break # break16 else:7 continu...
  • 项目开发中经常会遇到有多重循环嵌套的情况,这样的写法对于代码的读写有很大的影响,甚至在一些如sonarQube等代码检测工具上会出现严重的错误,通不过规范。如以下: if(...){  if(...){  for(){  if(){...
  • js多层for循环嵌套,终止外循环

    千次阅读 2020-05-18 16:19:51
    在js中,多层for循环嵌套时,如果想在内层循环到达某个条件时,终止外层循环,可以这样做: a:for(let i=0;i<10;i++){ b:for(let j=0;j<10;j++){ console.log(i,j) if(i==5){ continue a; } if(i==6){ ...
  • vue v-for循环嵌套的探索(二)

    万次阅读 2018-08-05 21:11:22
    归根结底是一种有规律的数据,但是有些规律却不是那么容易的,很多时候,我们会使用到循环,甚至多重循环的嵌套,不同的循环嵌套对应着不同的json数据的结构,本篇主要讲述的是使用v-for循环解决部分同,部分不同的...
  • 有时候想要做一个循环判断希望可以跳出多重循环嵌套,可以用以下方法哦: 加标签法 在你需要跳出循环的上方写标签 xxx: 需要跳出的时候 break xxx 即可 如: Tag_1: for(j=0;j&lt;2;j++) { for(i=0;i&lt...
  • 小程序for循环嵌套

    2019-02-26 11:44:00
    <view class='nocontnt' wx:if="{{listLength == 0 }}"> 暂无相关评论 </view> <view class='' wx:elif="{{listLength !...view class="evaluateBox" wx:for="{{evaluateList}}...
  • 如何实现用函数递归进行多重循环嵌套(不定嵌套的层数),求原理或源码。因为我要做10多重循环,且要求根据输入的值决定嵌套的层数,不然就if写死人了
  • 大家都知道写程序的时候会遇到多重循环嵌套,例如for循环里面嵌套for循环。那么当我们要结束这个循环体的内部嵌套循环体时可以用break,或者continue。但是如果我们要一次性结束整个循环体,有哪些办法呢?我举个...
  • 多个for循环嵌套的break

    千次阅读 2020-10-26 23:44:34
    单独break在内层,如下这种遇到只是跳出内层for循环 public static void main(String[] args) { for(int i=0;i<10;i++){ for (int j=0;j<10;j++){ if (j==2){ System.out.println("数字:"+j+"\n"); break...
  • for循环多重嵌套的流程图

    千次阅读 多人点赞 2020-02-21 16:51:37
  • python 多层for循环嵌套的优化方法

    千次阅读 2020-03-11 14:20:40
    题目:有5个长度不一的数组a1、a2、a3、a4、a5,现各从数组中取出一个数,组成...题目挺简单,看一下就明白,然后第一时间用了一堆for循环,脚本如下: a1 = [1,2,4] a2 = [2,3,4,5] a3 = [1,4,7] a4 = [3,6,7,8] a5...
  • 如何使用for循环嵌套的思想实现水仙花数的输出 一、完整代码如下 二、代码调试结果如下 希望大神提供一些指导思想(因个人审题不够清晰,思路不好导致编写的这段代码,有比较方便的代码能实现该体=题功能) ...
  • Java跳出多重嵌套循环

    2020-12-22 18:36:41
     我们可以在循环体开头设置一个标志位,也是设置一个标记,然后使用带此标号的break语句跳出多重循环。 public class BreaklFor { public static void main(String args[]){ OK: //设置一个标记 使用带此标记...
  • OC 跳出多层for循环嵌套 goto

    千次阅读 2016-11-05 21:59:34
    方法名 { goto 必须放在方法中 for (int i = 0; i ; i++) { for (int j = 0; j ; j++) { if (i == 2 && j == 4) { NSLog(@"j ==== > %d",j); goto b;
  • 在项目开发中,有的时候可能会遇到向java一样的for循环嵌套,举个例子比如我实现左侧导航区域 已有的json [{ name = 系统管理, id = 1, listAll = [AdminPermission { id = 2, name = '账号管理', pid = 1...
  • 复习_for循环嵌套 及 流程图梳理

    千次阅读 2018-05-16 12:53:00
    使用for循环输出如下图形: * ** *** **** 分析及做法. 图链接: https://www.processon.com/view/link/5afba745e4b05352c2bf7a5c 流程图图标: http://www.cnblogs.com/ukzq/p/7715287.html 将编程看作是一门艺术,而...
  • 求助如何改善for循环嵌套的代码,减少python程序运行时间 题目来源:第七届蓝桥杯c++B组题目: 四平方和 四平方和定理,又称为拉格朗日定理: 每个正整数都可以表示为至多4个正整数的平方和。 如果把0包括进去,就...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 21,276
精华内容 8,510
关键字:

多重for循环嵌套