精华内容
下载资源
问答
  • 请问while(1)socket编程什么时候结束循环,这是服务器端用循环 recvfrom收到的数据![图片说明](https://img-ask.csdn.net/upload/201602/19/1455888552_63318.png)
  • word)这种循环时,编译运行往往会出现循环不能终止的状况,所以我们有了不知道如何结束这种循环的疑惑。   在 Unix 系统中的实际的现象为:  * 当输入为“字符串,回车,Ctrl+D”的时候,跳出循环; * 当输入...

    在c++编程中我们难免会遇到这种问题就是,当 使用while(cin>>word)这种循环时,编译运行往往会出现循环不能终止的状况,所以我们有了不知道如何结束这种循环的疑惑。

     

    在 Unix 系统中的实际的现象为: 


    * 当输入为“字符串,回车,Ctrl+D”的时候,跳出循环;
    * 当输入为“字符串,Ctrl+D,回车”的时候,不会跳出循环;
    * 当输入为“字符串,Ctrl+D,回车,Ctrl+D”的时候,跳出循环;
    * 当输入为“字符串,Ctrl+D,Ctrl+D”的时候,跳出循环;

    --------------------- 本文来自 MISAYAONE 的CSDN 博客

     

     

    具体原因解释如下:
    输入(cin)缓冲是行缓冲。当从键盘上输入一串字符并按回车后,这些字符会首先被送到输入缓冲区中存储。每当按下回车键后,cin 就会检测输入缓冲区中是否有了可读的数据。

    cin 还会对键盘上是否有作为流结束标志的 Ctrl+Z 或者 Ctrl+D 键按下作出检查,其检查的方式有两种:阻塞式以及非阻塞式。 阻塞式检查方式指的是只有在回车键按下之后才对此前是否有 Ctrl+Z 组合键按下进行检查,非阻塞式样指的是按下 Ctrl+D 之后立即响应的方式。如果在按 Ctrl+D 之前已经从键盘输入了字符,则 Ctrl+D的作用就相当于回车,即把这些字符送到输入缓冲区供读取使用,此时Ctrl+D不再起流结束符的作用。如果按 Ctrl+D 之前没有任何键盘输入,则 Ctrl+D 就是流结束的信号。 

    阻塞式的方式有一个特点:只有按下回车之后才有可能检测在此之前是否有Ctrl+Z按下。还有一个特点,如果输入缓冲区中有可读的数据则不会检测 Ctrl+Z(因为有要读的数据,还不能认为到了流的末尾)。还有一点需要知道,Ctrl+Z产生的不是一个普通的ASCII码值,也就是说它产生的不是一个字符,所以不会跟其它从键盘上输入的字符一样能够存放在输入缓冲区。 

     

    window系统一般采取阻塞式检查所以如果出现上述情况则采用Ctrl+Z的方式来结束循环。

     

    具体什么意思我只能了解一个大概,不能深入了解,所等以后知识丰富了,再来更新此篇微博。

    谢谢!

     

    展开全文
  • int c; while((c=getchar())!=EOF) putchar(c); 《the c primer plus》 中的一段代码。 试了一下,死循环了。不知怎么结束
  • 对于死循环,要灵活运用死循环,达到某种条件的时候,结束掉死循环! */ class WhileDemo4{ public static void main(String[] args){ //for循环的死循环 /* for(;;){ //满足什么条件,结束(根据实际的...
    
    /*
    	for和while都存在死循环,如果控制不好步长语句的话,就造成死循环!
    	
    	对于死循环,要灵活运用死循环,达到某种条件的时候,结束掉死循环!
    
    */
    
    class WhileDemo4{
    	public static void main(String[] args){
    		
    		//for循环的死循环
    		/*
    		for(;;){
    		//满足什么条件,结束(根据实际的业务需求)
    			System.out.println("很高兴,学习了死循环...") ;
    		}
    		*/
    		
    		//使用while(true)
    		while(true){ //永远成立
    			System.out.println("很高兴,学习了死循环...") ;
    		}
    	}
    }
    
    设置判断语句,用break结束循环即可。
    
    展开全文
  • for循环while循环和do-while循环

    千次阅读 2018-09-19 17:06:06
    什么是循环循环:同一个代码根据情况要一直执行。...什么时候结束(如果没有结束条件,会进入死循环,让代码一直不停地运行) for循环 1.for循环的语句格式: for ( init_expr ; boolean tes...

    什么是循环?

    循环:同一个代码根据情况要一直执行。
    循环的意义:大大减少代码量, 极大意义上的提升硬件利用率
    什么时候使用循环?
    1.重复并且有规律 —>逻辑能力
    2.开始条件 —>从什么时候开始
    3结束条件 —>什么时候结束(如果没有结束条件,会进入死循环,让代码一直不停地运行)

    for循环

    1.for循环的语句格式:

    for ( init_expr ; boolean test_expr ; alter_expr){
    			statement or block;
    		}
    

    init_expr :初始条件,只会执行一次(可以省略)

    boolean test_expr:判断条件,每次循环都要判断(可以省略,必须是boolean类型的表达式,默认是true)

    alter_expr:循环变量的改变,每次循环都要执行(可以省略)

    statement or block:循环体,每次循环都要执行,直到循环的判断条件不成立(可以省略)

    在for循环语句中:初始条件会先执行(只会执行一次),然后执行判断条件,若不符合判断条件,将会调出循环体, 停止循环,若符合判断条件,将会执行循环体,循环体执行完毕后,会执行循环变量的改变,然后就完成一次for循环
    for循环语句分析
    练习题:

    //1.请在控制台上面打印1-10
    		public class Test06 {
    		public static void main(String[] args) {
    			for(int i=1;i<=10;i++) {
    				System.out.print(i+"\t");
    			}
    		}
    }
    	
    

    while循环

    1.while语句格式:

    init_statement
    		while ( boolean_expr ){
    			statement or block;
    			alter_expr;
    		}
    

    特点:在括号中只可以写循环判断条件,不写的话,就是true
    练习题:

    public class Test06 {
    		public static void main(String[] args) {
    			
    			int sum=0;
    			int i=1;
    			while(i<=100) {
    				sum+=i;
    				i++;
    			}
    			System.out.println(sum);
    		}
    }
    

    要注意的是:在while循环中,一定不要忘记书写alter_expr(循环变量的改变)
    for循环和while循环的应用场景:
    当明确的知道循环的次数的时候,使用for,反之就使用while循环
    当想明确的操作循环步长时,使用for,反之亦然
    其实,就现阶段而言,循环的一个很大的用处就是用来遍历集合或者数组

    do-while循环

    do-while循环语句格式

    [init_expr]
    do{
    		body_statement;
    		[alter_expr;]
    }while( test_expr);
    

    特点:无论如何都会执行一次
    代码实例:

    public class DoWhile01
    {
    	public static void main(String args[])
    	{
    		int i = 9 ;
    		do
    		{
    			// 先执行循环体一次,之后再进行条件的判断
    			System.out.print("*") ;
    			i++ ;
    		}while(i<10) ;
    	}
    };
    
    展开全文
  • 最近学习了C++遇到的一个问题,Windows系统下不知道怎么结束~ C++Primer 中,作者经常使用 while(cin>>word) ...* 当输入为“字符串,回车,Ctrl+D”的时候,跳出循环; * 当输入为“字符串,Ctrl+D,回车”的时

    最近学习了C++遇到的一个问题,Windows系统下不知道怎么结束~

     C++Primer 中,作者经常使用 while(cin>>word) 类似的语法,但是如何结束,可能会出现疑惑

    好囧啊!~感觉是被作者给坑了的~


    在 Unix 系统中的实际的现象为: 


    * 当输入为“字符串,回车,Ctrl+D”的时候,跳出循环;
    * 当输入为“字符串,Ctrl+D,回车”的时候,不会跳出循环;
    * 当输入为“字符串,Ctrl+D,回车,Ctrl+D”的时候,跳出循环;
    * 当输入为“字符串,Ctrl+D,Ctrl+D”的时候,跳出循环; 


    在 Windows 系统中的实际现象待考察。 


    具体原因解释如下:
    输入(cin)缓冲是行缓冲。当从键盘上输入一串字符并按回车后,这些字符会首先被送到输入缓冲区中存储。每当按下回车键后,cin 就会检测输入缓冲区中是否有了可读的数据。

    cin 还会对键盘上是否有作为流结束标志的 Ctrl+Z 或者 Ctrl+D 键按下作出检查,其检查的方式有两种:阻塞式以及非阻塞式。 阻塞式检查方式指的是只有在回车键按下之后才对此前是否有 Ctrl+Z 组合键按下进行检查,非阻塞式样指的是按下 Ctrl+D 之后立即响应的方式。如果在按 Ctrl+D 之前已经从键盘输入了字符,则 Ctrl+D的作用就相当于回车,即把这些字符送到输入缓冲区供读取使用,此时Ctrl+D不再起流结束符的作用。如果按 Ctrl+D 之前没有任何键盘输入,则 Ctrl+D 就是流结束的信号。 

    阻塞式的方式有一个特点:只有按下回车之后才有可能检测在此之前是否有Ctrl+Z按下。还有一个特点,如果输入缓冲区中有可读的数据则不会检测 Ctrl+Z(因为有要读的数据,还不能认为到了流的末尾)。还有一点需要知道,Ctrl+Z产生的不是一个普通的ASCII码值,也就是说它产生的不是一个字符,所以不会跟其它从键盘上输入的字符一样能够存放在输入缓冲区。 


    结论:Windows系统中一般采用阻塞式检查 Ctrl+Z、Unix/Linux系统下一般采用非阻塞式的检查 Ctrl+D。

    展开全文
  • 循环条件的判断:判断循环什么时候结束 循环操作:需要被重复执行的代码 循环变量的改变:没有变量的改变的循环是一个死循环,除非与其他逻辑结构嵌套结合 while循环 下面是while循环的语法: while(循环条件){ 循...
  • while: 对于while循环来说,一般不知道我们需要执行多少次,不知道循环什么时候结束。当达到指定的目的后,结束循环。 总结: for 和 while 都是循环方法。具体在什么情况下使用,要根据需求的不同。 当对于不知道要...
  • 0)的else语句中的break不能把while循环结束,从而让程序停下来啊,我在控制台看到输出了前门和后面经过的人数,但是break好像没发挥作用啊,在idea的控制台我看到程序运行的方框那个还是红色的*/...
  • 我们先来说下这个例子的意思,首先,while+条件: 这个已经带入到了代码中,这个代码的意思是当循环10次1的时候 ,跳出循环。先定义了num = 1 那么num 就是1的意思,然后while循环,当Num小于等10 的时
  • while循环 只要条件判断式成立,循环就会一直继续,直到条件...until循环和while循环相反,只要条件判断式不成立,则一直循环,什么时候成立,什么时候结束循环 语法格式: until [ 条件判断式 ] do 程序 done ...
  • ''' 循环语句while for 什么是循环:重复做某一件事情 生活中的循环:钟表、 代码中什么情况下会使用循环:当一段代码需要重复执行的时候 循环三大条件:1....break:结束循环 continue: while...else ...
  • 写第一问时候发现调试时候输入之后按回车没有反应了,如果我把下面的求和程序放入while循环中其实可以输出结果,只不过结果有些问题。 试了下紧挨着在while循环下面cout;但是也没有输出 感觉是因为输入结束之后...
  • 循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句, 当反复 执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直 执行下去...
  • 青少年编程Playgrounds之十七–While循环 第七关 嵌套循环 分析一下地图,只要让角色Byte每次遇到宝石后,左转...那么什么时候退出外部的大循环呢? 通过头脑中模拟一下情形可知,Byte通过多次内循环后,最终来到最
  • 先看一段代码。 vector<int> vecNum; int num = 0; while(cin >...我们知道在循环中,我们想要结束循环的条件是cin >> num不为真,那么,我们就需要在输入结束的时候,先按下回车键然后
  •  循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去...
  • 如果这里什么都不写,则是一个死循环 ${__groovy("${title}"!="<EOF>")} __groovy 是jmeter中的函数,将逻辑表达式的结果,返回给Jmeter “${title}” 获取文件中的一条数据中的一列数据 “<EOF>...
  • 从而结束循环,否则循环将一直执行下去,形 成死循环。 while循环: 结构: 执行过程: 先判断表达式,若为true就执行循环体,否则,跳过循环体。 流程图 示例: 使用循环结构如下,只须要控制count 就可以来打印...
  • 循环结构

    2019-09-30 18:09:12
    循环条件:什么时候开始,什么时候结束循环操作:循环体,循环过程中,干了什么 ㈡循环结构—while循环 ⑴语法 while(boolean表达式){ 循环体语句; } ⑵流程 ①判断条件 ②如果条...
  • 代码中什么情况下会使用循环: 当一段代码需要重复并且连续的时候需要用的循环循环三大条件: 1.定义循环的起始值  2.循环结束的条件  3.起始值递增或递减 无限循环:死循环 造成死循环的条件:1.当循环条件...
  • 循环

    2020-07-16 20:54:56
    while(循环的条件,条件为true,就会接着循环,直到条件为false,循环结束){ //循环体内部(循环的内容) } 举两个简单的小例子 /**********************************************第一题*************************...
  • 然后发现在while循环中只要整个循环体都被同步代码块包含的话就只要满足条件线程获得锁后不会释放锁,尝试了一下在同步代码块外随便加一个都可以释放锁,所以想问一下while循环中判断的时候什么不会释放锁?...
  • java-循环

    2021-01-02 16:17:46
    三种循环 while循环 do-while循环 for循环 while循环 //while语法 while(boolean结果){ //如果boolean结果为真,进入循环里面 ...什么时候会用到死循环呢,就是不知道终止条件,不知道什么时候结束,比如说玩猜
  • 循环语句

    2019-12-01 18:03:21
    需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去,形成死循环 B:循环结构的分类: for循环 while循环 C:循环结构for语句的格式: for(初始化表达式语句;判断条...
  • 游标什么时候消失

    2017-06-20 14:56:35
    一个选择题,求解 当一个存储过程结束后,游标会: 1.消失 2.继续存在,但无效 3.继续存在,还有小   cursor 。...while。... 过程里面游标什么了  ... 然后打开循环 ...循环结束
  • for循环

    2020-02-11 15:25:24
    1,循环的初始化(循环什么时候开始执行) 2,循环继续条件(循环何时结束) 3,循环体(被多次执行的代码块) 4,循环的周期,步长,间距(当前循环和下一次循环之间的变更) for(1循环的初始化;2循环的继续条件;4...
  • 循环语句结构

    2019-12-03 11:54:36
    1.如何判断什么时候用什么语句: 若循环次数一定,计数控制的循环用for循环。 若循环次数未知,条件控制的循环while循环。 若循环次数至少执行一次用do-while循环。 2.嵌套循环的概念: 在一个循环语句中又...

空空如也

空空如也

1 2 3 4 5 ... 11
收藏数 208
精华内容 83
关键字:

while什么时候结束循环