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

    万次阅读 多人点赞 2018-08-05 15:14:25
    循环控制行数,内循环控制每一行的个数) 下面以冒泡排序为例说明: 第一个(外层)for循环作用:控制排序的轮数 第二个(内层)for循环作用:控制每一轮里的每一个比较步骤 代码: public c...

    关于for循环嵌套作如下解释:

          首先内层循环属于外层循环循环体的一部分,当循环体执行完以后外层循环才进入第二次循环,此过程中内层循环需要执行符合条件的完整循环。(外循环控制行数,内循环控制每一行的个数)

    下面以冒泡排序为例说明:

    • 第一个(外层)for循环作用:控制排序的轮数

    • 第二个(内层)for循环作用:控制每一轮里的每一个比较步骤

    代码:

    public class Test {
    
    	public static void main(String[] args) {
    
    		int[] array = { 7, 3, 10, 0, 6 };
    
    		// 共4轮排序,每轮都是把最大的元素排在后面
    		for (int i = 0; i < array.length - 1; i++) {
    
    			// 每轮排序中:需要比较的元素个数比上一轮少一个
    			for (int j = 0; j < array.length - i - 1; j++) {
    
    				// 中间变量,用于两个元素交换位置
    				int temp = 0;
    				if (array[j] > array[j + 1]) {
    
    					temp = array[j];
    					array[j] = array[j + 1];
    					array[j + 1] = temp;
    				}
    			}
    
    		}
    
    		// 遍历数组,打印元素
    		for (int i = 0; i < array.length; i++) {
    			System.out.print(array[i] + " ");
    		}
    	}
    }

    例1:循环打印下图1

    图1

    代码如下:

    public static void testFor() {
        int n=5;
        for(int i=1;i<=n;i++){
    	for(int j=1;j<=n-i;j++){
    	    System.out.print(" ");
    	}
    	for(int j=1;j<=2*i-1;j++){
    	    System.out.print("*");
    	}
    	System.out.println();
        }
    }
    
    public static void testFor1() {
        for (int i =1; i <=5; i++) {
                for(int j=5; j>=i; j--){
                    System.out.print(" ");
                }
                for(int j=1;j<=i*2-1;j++){
                    System.out.print("*");
                }
                System.out.println();
            }
    }

     

    例:循环打印tu 2

    图2

    代码如下:

    public class Test {
    
    	  public static void main(String[] args) {
    	        /*
    	         * 外层控制行数
    	         * 内层控制星号的个数
    	         */
    	        for (int i = 1; i <=5; i++) {
    	            for(int j=1;j<=i;j++){
    	                System.out.print("*");
    	            }
    	            System.out.println();
    	        }
    	    }
    }

     

    展开全文
  • 循环取个名字

    给循环取个名字

    在这里插入图片描述

    continue 的作用:
    结束本次循环 ,继续下次循环。

    展开全文
  • 在C++里面,我们通常会这样写for循环:for(int i = 0;...}  首先是在循环中定义变量到底会不会存在重复分配的问题,这涉及到编译器的优化,不过主流编译器(如vs和gcc)这一块优化都比较好,

      在C++里面,我们通常会这样写for循环:

    for(int i = 0;i<10;i++)
    {
         cout << i;      
    }

      还有另外一种写法:

    int i = 0;
    for(; i<10 ;i++)
    {
          cout << i;     
    }

      首先是在内层循环中定义变量到底会不会存在重复分配的问题,这涉及到编译器的优化,不过主流编译器(如vs和gcc)这一块优化都比较好,不会反复分配变量。函数的定义是编译器的事情,运行的时候不存在什么定义,更没有什么开销。

       除非是类对象或者结构体对象, 在for循环里面与外面, 开销可能会不一样.基本数据类型, 那是一样的, 编译器肯定会优化这个东西。

      一般来说, 在进入函数时, 所有的栈变量都分配好空间了。所以那个for变量写在哪里都是一样的. 具体你可以看一下反汇编代码, 全部就展现在你眼前了。

      自己在编程的时候要注意不要让上一次的结果影响到下一次循环,比如上一次 a = 3, 当下一次循环在给a赋值的时候出了错误,而你捕获了错误,却没修正a的值,程序继续执行,那么这时候a=3还成立,可能就会有问题了,如果是每次都重新定义,那就不存在这样的问题。

      最后总结:

      1、对于使用int等基本数据类型作为循环变量,只要你用的优化方面足够给力的主流的编译器,完全不需要关心在循环外还是循环内定义循环变量。

      2、如果循环变量本身是复杂的对象,建议在循环外定义好,并且在for循环的赋值语句、判断语句中,都要避免重复创建对象。

    展开全文
  • def main(): door_status = [4,5,5,4,5,5,5,4] lock_signal = 5 open_door = False for k in range(1,3): for x in range(5): door = door_status[k] if door == lock_signal: ...
    def main():
    
    	door_status = [4,5,5,4,5,5,5,4]
    	lock_signal = 5
    	open_door = False
    	for k in range(1,3):
    		
    		for x in range(5):
    			door = door_status[k]
    			if door == lock_signal:
    				open_door = True
    				break
    			print('  x:',x,'  door:',door,end='')
    		if open_door:
    			continue
    		print('    ', k,end='')
    		print()
    
    
    if __name__ == '__main__':
    	main()

    不会输出

    def main():
    
    	door_status = [4,5,5,4,5,5,5,4]
    	lock_signal = 5
    	open_door = False
    	for k in range(1,3):
    		
    		for x in range(5):
    			door = door_status[x]
    			if door == lock_signal:
    				open_door = True
    				break
    			print('  x:',x,'  door:',door,end='')
    		if open_door:
    			continue
    		print('    ', k,end='')
    		print()
    
    
    if __name__ == '__main__':
    	main()

     输出:x: 0   door: 4  x: 0   door: 4

    door = door_status[k]中的k改为x就会输出值。

    大家不要跳到这个坑里。

    原理不知道,希望大神解释下。

     

     

    展开全文
  • 跳出内循环,继续循环: def work(): #定义函数 for i in range(5): for j in range(5): for k in range(5): if k=3: break #跳...
  • 循环创建对象和循环外创建对象

    千次阅读 2018-06-01 10:15:05
    对于在循环外创建对象比较好还是在循环创建对象好问题,我认为应该具体情况具体分析:1、如果循环没有需要将对象添加到集合等一些情况,则应该在循环外创建对象,这样可以节省内存,不用多次创建对象造成内存的...
  • 关于变量在for循环内外定义的思考 在c#或java里面,我们通常会这样写for循环: for(int i = 0;i10;i++) { Console.WriteLine(i); } 前一阵子,我突发奇想,如果按照下面这样写,会不会比上面的运行效率高...
  • 跳出一层:for(int i=0;...//跳出a循环,回到i循环 }}跳出两层:labe:for(int i=0;i for(int a=0;a break labe;//跳出整个循环 }} 跳出单层并且不执行外层的代码 boolean flag = false; for(int i=0;i
  • new对象在for循环循环外的区分

    千次阅读 2019-01-23 13:47:51
    所以:在循环体外,始终都是这一个对象,循环放入的都是最新的值。在循环体内,创建的是不同的对象,每次放入的对应这不同值的对象。于是修改代码测试,发现已经是不同的值了。 总结: 放外边是同一块内存...
  • for循环内外定义变量的区别

    万次阅读 2019-05-22 22:06:24
    对于在for循环内层申明的变量,for循环内每次在对变量进行赋值时,都会为变量开辟新的内存空间,即使这些变量在调用时的变量名一样,但是for循环循环一次,之前申明的变量就已经出栈了(JS没有块级作用域,所以直到...
  • 代码示例如下图所示,在while中变量namelist、image_hash无法传到循环外部。 原因:使用了管道的缘故,当启用管道时,会生成一个subshell,while循环的代码在subshell中执行 function generate_ota_package() { ...
  • 通过代码测试发现,try catch放在循环的性能表现高于放在循环外,而我一直以为try catch放在循环外的性能要高于放在循环。而且通过不同版本JDK测试,发现JDK7比JDK6的优化更好,但若不使用try catch,JDK6的表现...
  • 关于变量在for循环内外定义的思考

    千次阅读 2017-04-13 14:58:36
    关于变量在for循环内外定义的思考 在c#或java里面,我们通常会这样写for循环: for(int i = 0;i10;i++) { Console.WriteLine(i); } 前一阵子,我突发奇想,如果按照下面这样写,会不会比上面的...
  • 题目的意思是统计一个文件中单词重复的次数,开始写法如L24,while循环结束后,map依然为空,后来才知道是使用了管道的缘故  当启用管道时,会生成一个subshell,while循环的代码在subshell中执行,那么变量map也...
  • Effective C++ 条款 26 有一段话大概是:当一个赋值成本低于一组构造+析构成本,定义在循环外(即A)比较高效,否则定义在循环(即B)比较好。 我的问题是:哪些情况 赋值成本低于一组构造+析构成本?   ...
  • 写这篇文章的原因是我在问答平台看到的一个问题:C++循环中定义变量和在外面定义比影响大吗?问题来自:http://ask.csdn.net/questions/176270 例如: for(int i=0;i;i++) { for(int j=0;j;j++); } ...
  • try catch放在循环内外的区别

    万次阅读 2012-11-09 10:17:47
     test1是将try catch放在了循环内,test2是将try catch放在了循环个。  二者的区别是如果test2中循环内容抛出异常的话,就直接跳出了循环,而test1在执行中抛出异常会继续循环。  至于二者选择哪种方式更好...
  • 最近写代码的时候,一直在思考这个问题,现在空了,写篇...for1(简称“f1”)是循环外new对象 for3(简称“f3”)是循环new对象。 看接下来的知乎: https://www.zhihu.com/question/31751468 未完待续···
  • python for循环内输出和输出

    千次阅读 2018-07-30 15:58:30
    通过for循环求和,结果发现输出完全不一样,一个循环是输出每一步的结果,另一个循环是输出最终一次的结果,今天终于弄懂了。如下所示:
  • 今天在使用python map的...如下代码,期望的结果是每次从循环进入内循环,map都从头开始进行遍历,但事实却不是这样,下面为代码: outData = [[1, 3, 4], [2, 3, 5], [1, 2, 3, 5], [2, 5]] outDataMap = map...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,455,066
精华内容 582,026
关键字:

内循环外循环怎么开