精华内容
下载资源
问答
  • for和while

    2017-12-04 09:54:38
    下列关于for循环和while循环的说法中哪个是正确的?( ) A.while循环能实现的操作,for循环也都能实现  B.while循环判断条件一般是程序结果,for循环判断条件一般是非程序结果  C.两种循环任何时候都可替换...
    下列关于for循环和while循环的说法中哪个是正确的?( )  
    A.while循环能实现的操作,for循环也都能实现    
    B.while循环判断条件一般是程序结果,for循环判断条件一般是非程序结果    
    C.两种循环任何时候都可替换    
    D.两种循环结构中都必须有循环体,循环体不能为空

     

    我的理解是:
    当知道执行次数的时候一般用for
    当条件循环时一般用while
    例如:
    for i=0,i<n,i++
    {}
    这里n是已知数,可以循环n次

    while i<n
    {}
    不知道要循环多少次,但当i>=n的时候停止循环

    do while循环总会执行一次,for不一定,

    一般来说,for对于初学使用的要多于while,但其实while的功能要大于for,以后你慢慢会体会到的,所有的for循环都可以用while来表示,但就不是所有的while循环都可以用for循环来表示!

    while的用途有时候比for要巧
    因为while有do...while这个变体,无条件执行一次循环体后再判断是否达到或超过循环终止条件
    但是具体用什么还是看个人程序设计风格了
    举些例子:
    如果是非常有规律的循环,比如简单穷举那么我们用for
    如果用于处理复杂的循环,不适用单循环变量稳定递增进行的循环,那么一般我们用while

    其实也可以这样说,for循环都是用来表示那些显而易见的循环结构,就是使用它表示很容易就可以看出循环的头和尾,所以对于初学的程序来说这样。而while是用来表示一些相对复杂一点的循环结构,一般的while都不太容易看出循环的头和尾,有很多复杂的循环并不能用for循环来表示时,就只能用while循环来表示了。

    for循环通常用在循环次数确定的时候,而while循环用在次数不确定时
    比如下面这个计算字符的函数就不能用for:

    int strcount( char *sz )
    {
     int count = 0;
      while ( *(sz++) )
        count++;
     return count;
    }

    无明显区别
    如果知道明显的区域界限,一般用for

    如果不知道界限,但可以判断条件是真与否,一般用while 如
    while(XXX.next())
    {
    }
    这个时候并不知道这个对象有好多,但可以返回是true,还是false

    1. 两种循环在构造死循环时的区别
    用while构造死循环时,一般会使用while(TRUE)来构造死循环;而用for来构造死循环时,则使用for(;;)来构造死循环。这两个死循环的区别是:while循环里的条件被看成表达式,因此,当用while构造死循环时,里面的TRUE实际上被看成永远为真的表达式,这种情况容易产生混淆,有些工具软件如PC-Lint就会认为出错了,因此构造死循环时,最好使用for(;;)来进行。
    2. 两种循环在普通循环时的区别
    对一个数组进行循环时,一般来说,如果每轮循环都是在循环处理完后才讲循环变量增加的话,使用for循环比较方便;如果循环处理的过程中就要将循环变量增加时,则使用while循环比较方便;还有在使用for循环语句时,如果里面的循环条件很长,可以考虑用while循环进行替代,使代码的排版格式好看一些。

     

    对于需要无条件进行循环的语句,优先采用for语句.

    ;而在进行变量循环时,for语句在初始化变量后有一条跳转操作,而while没有,这个应该跟vc编译器有关

    ;可以说应该在效率上没有多大差别,需要进一步进行大数据量操作

    ;同时,我对于各种语句操作的顺序是否有时间关联不是很清楚.

    2. 大批量数据操作实验 -- 自加1000w次,然后再自减1000w次,看执行时间

    实践发现对于千万级数据量,执行时间并没有差异

     

    总结:

       主要考虑程序的可读性和美观,对于效率问题,可以不用考虑差异性.

       所以我比较推崇,在循环次数确定时,用for,不确定时,用while~~

     

    这是在网上摘录的一些关于for和while的区别,大家可以发表一下自己的看法,最好是有依据的。(欢迎大家讨论)

    展开全文
  • 冒泡排序法(for和while),选择排序法(for和while) public static void main(String[] args) { int arr [] = {56,33,51,49,102,23};//定义一个数组 /* * 2、利用冒泡排序(while和for)将数组进行...

    冒泡排序法(for和while),选择排序法(for和while)

    	public static void main(String[] args) {
    		
    		int arr [] = {56,33,51,49,102,23};//定义一个数组
    		
    		/*
    		 * 2、利用冒泡排序(while和for)将数组进行从小到大排序  --   
    		 * int arr[]={56,33,51,49,102,23};
    		 */
    		//for循环冒泡排序(小到大)
    		for(int i=0;i<arr.length-1;i++){//外层循环的次数
    			for(int j=0;j<arr.length-1-i;j++){//内层循环的次数
    				if(arr[j]>arr[j+1]){//哪两个数进行比较
    					int temp = arr[j];
    					arr[j] = arr [j+1];
    					arr[j+1] = temp;
    				}
    			}
    		}
    		System.out.print(Arrays.toString(arr));//输出排序后的数组
    		
    		System.out.println();System.out.println();   //换行
    		//while循环冒泡排序(大到小)
    		int i = 0;
    		while(i<arr.length-1){//外层循环控制
    			int j = 0;			//不能在外面定义
    			while(j<arr.length-i-1){//内层循环控制
    				if(arr[j]<arr[j+1]){//哪两个数进行比较
    					int temp = arr[j];
    					arr[j] = arr [j+1];
    					arr[j+1] = temp;
    				}
    				j++;
    			}
    			i++;
    		}
    		System.out.print(Arrays.toString(arr));//输出排序后的数组
    		System.out.println();System.out.println();   //换行
    		
    		/*
    		 * 利用选择排序(while和for)将数组进行从大到小排序  --  
    		 * int  arr1[]={36,11,90,87,156,2};
    		 */
    		int  arr1[]={36,11,90,87,156,2};//定义数组
    		//for选择排序(大到小)
    		for(int i1=0;i1<arr1.length-1;i1++){//外层循环次数
    			for(int j=i1+1;j<arr1.length;j++){//内层循环次数
    				if(arr1[i1] < arr1[j]){
    					int temp = arr1[i1];
    					arr1[i1] = arr1[j];
    					arr1[j] = temp;
    				}
    			}
    		}
    		System.out.print(Arrays.toString(arr1));//输出排序后的数组
    		System.out.println();System.out.println();   //换行
    		
    		//while选择排序(小到大)
    		int q = 0;
    		while(q<arr1.length-1){//外层循环次数
    			int w = q+1;			//不能定义在循环外面
    			while(w<arr1.length){//内层循环次数
    				if(arr1[q]>arr1[w]){
    					int temp = arr1[q];
    					arr1[q] = arr1[w];
    					arr1[w] = temp;
    				}
    				w++;
    			}
    			q++;
    		}
    		System.out.print(Arrays.toString(arr1));//输出排序后的数组
    		System.out.println();System.out.println();   //换行
    		
    	}
    
    }
    
    展开全文
  • for和while如何相互转换

    千次阅读 2020-02-13 15:57:47
    for和while相互转换 博主网站:https://blog.zhenglin.work 先看段代码: for (int i = 1; i <10 ; i++) { for (int j = 1; j <= i ; j++) { System.out.print(j+"\t"); } System.out.println(); } Syst...

    for和while相互转换

    博主网站:https://blog.zhenglin.work

    • 先看段代码:
    for (int i = 1; i <10 ; i++) {
        for (int j = 1; j <= i ; j++) {
            System.out.print(j+"\t");
        }
        System.out.println();
    }
    System.out.println("-------->");
    //转换成while循环
    int k = 1;
    while (k < 10){
        int n =1;
        while (n <= k){
            System.out.print(n+"\t");
            n++;
        }
        System.out.println();
        k++;
    }
    

    上面代码效果一样,都是输出(乘法口诀外层):

    1	
    1	2	
    1	2	3	
    1	2	3	4	
    1	2	3	4	5	
    1	2	3	4	5	6	
    1	2	3	4	5	6	7	
    1	2	3	4	5	6	7	8	
    1	2	3	4	5	6	7	8	9
    

    for循环的格式是:for([初始化];[判断条件];[条件改变方式]){循环体} 其中()里面除了两个引号,其他不是非必须的 while更简单就括号里面判断条件;互相转换规律时,把for循环里面初始化写到外面,while括号里面只写判断语句,条件改变方式写到while循环体中,这样就可以达到for循环的效果;

    int k = 1;
    while (k < 10){
        int n =1;
        while (n <= k){
            System.out.print(n+"\t");
            n++;
        }
        System.out.println();
        k++;
    }
    

    但while循环语句更容易控制,只需验证括号里面布尔表达式是否成立就行,至于判断条件的变化,可以放到循环体里面来实现,并能灵活的加上限制条件(if),如实现 打印如下形状的数据,用while循环更合适;

    1	
    2	3	
    4	5	6	
    7	8	9	10	
    11	12	13	14	15	
    
    • 这种漏斗形式的数据,先总结规律,再来代码实现;上面形式数据特点是:每一行的元素个数和行号一样多; 那就说明当前行和当前列是一样多的,换句话说:当前行 最后一列位置和下一行 行号是一样的,让当前行 最后一列位置用换行符占着。
    • 思路有了,代码就好实现;需要三个变量来实现上面功能,一个供输出的变量index,一个行变量line,一个列变量column;当前行最后一列 和下一行行号相等的话,此列输出换号符;并让列重1开始,行号+1;继续打印i,然后列号+1;循环判断行号列的关系,一旦相等 就在此列位置输出换行符; 但要排除一种情况,就是行和列 都是1时,如果此时也输出换号的话,相等于第一行 第一列是个换行符 ;而1打印到第二行了。
    • 代码实现:
    int line = 1;
    int column = 1;
    int index = 1;
    while (index<=15){
        if (line == column) {
            if (index != 1) {
                System.out.println();
            }
            column=1;
            line++;
        }
        System.out.print(index+"\t");
        index++;
        column++;
    }
    

    如果打印一个倒三角,更简单因为line和column起始值不同,不用做index != xx,这种判断;这里面是避免第一行是打印的是一个空行。

    @Test
    public void showNum(){
        int line = 11, column = 1,index=55;
        while (index>0){
            if(line == column){
                System.out.println();
                line--;
                column = 1;
            }
            System.out.print(index+" ");
            index--;
            column++;
        }
    }
    

    while 布尔表达式的灵活性还有用变量来表示,如 boolean flag = true; while(flag){循环体},在循环体中,出现某种情况让flag值变为false,即可实现中断循环的功能;或者更简单,出现符合条件后用break跳出即可。另外不管是何种循环控制器 都可以用break或continue。

    展开全文
  • for和while区别

    2014-11-17 12:14:49
    for和while可以互换,但是是有区别的 举例子: int x=1; while(x System.out.println("x="+x); x++; } System.out.println(“x===”+x);(在这里依然可以打印x的值) 当使用for的时候 for(int x=1;x System....
    for和while可以互换,但是是有区别的
    举例子:
    int x=1;
    while(x<5){
    System.out.println("x="+x);
    x++;
    }

    System.out.println(“x===”+x);//(在这里依然可以打印x的值)


    当使用for的时候
    for(int x=1;x<5;x++){
    System.out.println("x="+x);
    }
    //System.out.println("x==="+x);(在这里不可以打印x的值了,x是有作用域的,循环结束后,就从内存释放了)

    所以,当循环结束后,还需要使用x的时候,用while,但注意循环结束后不释放,会占用内存,外国人对这个很讲究;当对内存有要求, 且循环结束后不再使用x的时候,使用for。


    for和while无限循环最简单的形式:
    for(;;){}
    while(true){}
    展开全文
  • shell脚本——for和while之间的区别

    千次阅读 2021-03-27 19:44:49
    for和while之间的区别for和while之间的区别行读取的区别不同场景使用不同的循环通过文件创建用户的脚本统计系统里各种状态的脚本统计/etc/passwd里面shells的各种状态数量统计TCP连接状态数量 for和while之间的区别 ...
  • python中for 和while的区别: for 适用于已知循环次数的循环 while 适用于未知循环次数的循环 for 通常用于遍历可迭代对象 while 很少进行遍历使用 for 循环是在序列穷尽时停止, while 循环是在条件不成立时...
  • for和while的区别

    2014-12-06 14:10:30
    for和while的区别,面试需要考虑周到
  • 当时曾经怀疑过 for while 的用时不同,在网上搜索,看到了一个帖子: “https://cartoonyu.github.io/cartoon-blog/post/java/for%E4%B8%8Ewhile%E6%97%B6%E9%97%B4%E7%9A%84%E5%AF%B9%E6%AF%94/” 作者用 ...
  • python for和while循环详解原创 2017年01月21日 12:06:12标签:python /while /for /循环269for循环一、 for语句格式for 表达式1 in 表达式2: # 判断 表达式1 是否在表达式2所包含范围中语句1 # 若上一句条件...
  • Python for和while循环的区别

    千次阅读 2019-02-21 15:42:10
    Python for和while循环的区别 for循环 1.for循环第一种情况 for x in range(0, 10): print(x) # 结果为0,1,2,3,4,5,6,7,8,9 # 从0开始到9结束 2.for循环第二种情况 for x in range(0, 10, 2): ...
  • 关于while 和for循环的cpu性能以及内存占用情况同样的脚本文件,分别使用for和while完成,再用top查看cpu和内存的情况。[root@localhostfish]# cat sumwhile.sh#!/bin/bash#declare-i sum=0declare-i i=1while [ $i ...
  • /** 用for和while循环 do-while分别计算100以内奇数和偶数的和,并输出。 */ public class ForWhileDoWhile { public static void main(String[] args) { // 1.for int sumOddi = 0;// 奇数和 int sumEveni = 0;...
  • for和while循环的区别: 主要体现:从内存角度考虑,for循环结束,循环中变量及时从内存中释放掉,for循环的外面不能再访问这个变量 而while循环结束,还能去访问这个变量,等待GC空闲时,释放这个变量 还有一种场景的理解...
  • Python_for while 求n!

    千次阅读 2019-03-24 20:50:40
    #for while 求n! n = int(input("请输入一个整数您将得到阶乘")) sum = 1 for i in range(1, n + 1): sum *= i print("for循环的阶乘:", sum) sum = 1 i = 1 while(i <= n): sum *= i i = i + 1 print(...
  • Shell中的for和while循环详解

    千次阅读 2018-09-09 21:15:50
    Shell中的for和while循环详解 一、for循环 数字段形式 for i in {1..10} do  echo $i done   详细列出(字符且项数不多) for File in 1 2 3 4 5  do   echo $File  done   对存在的文件进行循环...
  • for 和while的特点: 1.for 和while 可以互换 2.格式上的不同,在使用上有点小区别  如果需要通过变量来对循环进行控制,该变量只作为循环增量存在时,区别就体现出来了 什么时候使用循环结构呢?  当对...
  • Shell中的for和while循环详细总结

    千次阅读 2017-08-16 14:41:34
    Shell中的for和while循环详细总结 这篇文章主要介绍了Shell中的for和while循环详细总结,本文讲解了for循环的数字段形式、详细列出、对文件进行循环,while循环的三种使用场合等内容,需要的朋友可以参考下 一...
  • python中for和while的区别(break和continue的用法) 1.for循环:for变量in列表 (存在步长,默认步长为1,默认初始值为0)(适用于某个代码块,和已知循环次数的循环) 2.while循环:while True: (不断运行直到满足...
  • for和while/++i和i++

    2017-04-05 18:04:26
    for和while while循环: 以行读取文件,默认分隔符是空格或者Tab; 循环体内有ssh、scp、sshpass的时候,需要加上 for循环: 以空格读取文件,也就是碰到空格,就开始执行循环体,所以需要以行读取的...
  • 求1到100所有偶数的和,用for和while语句分别完成 for语句 public class Test01 { public static void main(String[] args) { int sum = 0; for (int i = 2; i <=100 ; i+=2) { sum=i+sum; } System.out....
  • for和while
  • for和while遍历HashMap效率测试,for循环耗时更少一些
  • for和while的特点: 1.for和while在功能上可以互换; 2.格式上的不同,使用上有点小区别  如果需要通过变脸来对循环进行控制,该变量只作为循环增量存在时,区别就体现出来了。 变量在while执行后,在存在内存...
  • shell中for和while区别

    2012-08-19 14:34:55
    发现for和while一个细节上的区别,写出来备忘。 脚本: file=/home/hadoop/phrases.txt for content in `cat ${file}` do phrase=`echo ${content}` echo $phrase done phrases.txt文件内容是: Hello ...
  • Ⅰ、用for和while循环来判断学生成绩: ①、//代码摘下直接可以运行 #include<stdio.h> int main() { int i=0,grade; printf(“Please input the number of grade!\n”); while(i<=4) { scanf("%d",&...
  • 文章目录 switch...case**总结:**if...else注:循环语句:for和while循环for循环语句while循环语句do...while语句双重for循环 switch…case 基本结构: switch(key) { case value : break; default : ...
  • Oracle中的for和while循环 有两种方式可以实现条件循环 一、for 变量 in 开始数值...结束数值loop end loop; 二、while 条件loop end loop; loop的使用方式: exit when 语句可以出现在循环代码中的任何...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 24,733
精华内容 9,893
关键字:

for和while