c语言问题咨询 do while 大括号的使用问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言问题咨询 do while 大括号的使用问题相关的知识,希望对你有一定的参考价值。

c语言问题咨询 do while 大括号的使用问题想问下大括号外和里面为什么一个正确,一个错误,环游 do while 语句要注意什么

看了你的程序,有3点要注意:


1. 所附2段程序中:

int n, retry;



第一段程序中,是定义在do while循环以外,这所有编译器都支持,不会出错。第二个把其定义在do while循环里面,少数编译器接受这种“语句体”的局部变量定义,其它编译器会出错。

2. 看变量的作用域

对于第一段程序,n和retry都是相对于do while的“全局变量”,使用起来不会有问题。
而对于第二段程序,情况就要复杂一些。n没有问题,是在程序体里使用。但是对于retry,

while (retry == 0);



由于while出现的位置,已经在do while程序体之外,超出了自动变量retry的“作用域”,会导致“retry没有定义”的错误。


3. 注意main()函数中,右花括号“”的匹配,别少了。

追问

谢谢了

追答

客气啦

追问

这个用do while 语句怎么改

参考技术A 这个是变量生命周期的问题
一层大括号就是一个生命周期域, 当他遇到所在大括号的结束时,这个变量就消失了
第一个图, retry的生命周期是到return 0后面那个大括号
第二个retry是在while前面的大括号, 所以while里面的判断语句, retry这个变量已经不存在了
参考技术B 一对大括号叫作用域,在其中声明/定义的变量只在该作用域内有效。如果将retry定义在大括号内,那么大括号外retry将不可见,while(retry==0)将找不到retry定义。追问

那 int n 能写在do语句里面吗

在int retry 写在do语句前的时候

追答

如果你之后没有用到n,那么就可以。

参考技术C 我觉得我们大家还是多学一点普通话,多学一点外国。万对我们有帮助

C语言 do while 和 while 循环

目录

零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门

C 语言while 循环有一种比较特殊的循环,那就是 do...while 循环,下面一起来看看两者的区别;

一.do/while循环

1.do/while循环简介

//do / while 循环语法如下:

do
{
    //代码块

}while(条件判断)

do / while 循环while 循环不同,do / while 循环的时候是先执行循环体中的代码块,然后在判断 while 条件, while 条件如果为真,则继续循环,否则结束循环;

2.do/while循环实战

/******************************************************************************************/
//@Author:猿说编程
//@Blog(个人博客地址): www.codersrc.com
//@File:C语言 do while 和 while 循环
//@Time:2021/05/31 08:00
//@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
/******************************************************************************************/

#include "stdafx.h"
#include "stdio.h"
#include "windows.h"

int _tmain(int argc, _TCHAR* argv[])
{
	int i = 0;

	do
	{
		i++; // 等价 i=i+1;
		printf("i = %d\\n", i);
	} while (i < 10);

	printf("循环结束后:i = %d\\n", i);
	system("pause");
	return 0;
}

/*
输出:

i = 1
i = 2
i = 3
i = 4
i = 5
i = 6
i = 7
i = 8
i = 9
i = 10
循环结束后:i = 10
请按任意键继续. . .
*/

二.do/while循环和while循环区别

1.while循环

/******************************************************************************************/
//@Author:猿说编程
//@Blog(个人博客地址): www.codersrc.com
//@File:C语言 do while 和 while 循环
//@Time:2021/05/31 08:00
//@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
/******************************************************************************************/

#include "stdafx.h"
#include "stdio.h"
#include "windows.h"

int _tmain(int argc, _TCHAR* argv[])
{
	int i = 10;

	//while循环中,如果i<10条件成立,继续执行循环操作
	//while循环中,如果i<10条件不成立,结束循环,等待程序退出
	while (i < 10)
	{
		i++; // 等价 i=i+1;
		printf("i = %d\\n", i);
	}

	printf("循环结束后:i = %d\\n", i);
	system("pause");
	return 0;
}

/*
输出:

循环结束后:i = 10
请按任意键继续. . .
*/

while 循环体的代码并没有执行,因为 i=10while 循环的表达式 i<10 不成立,直接跳过循环体代码块;

2.do/while循环

/******************************************************************************************/
//@Author:猿说编程
//@Blog(个人博客地址): www.codersrc.com
//@File:C语言 do while 和 while 循环
//@Time:2021/05/31 08:00
//@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
/******************************************************************************************/

#include "stdafx.h"
#include "stdio.h"
#include "windows.h"

int _tmain(int argc, _TCHAR* argv[])
{
	int i = 10;

	do //直接执行循环体代码
	{
		i++; // 等价 i=i+1;
		printf("i = %d\\n", i);
	} while (i < 10);//while循环中,如果i<10条件成立,继续执行循环操作,否则结束循环,等待程序退出

	printf("循环结束后:i = %d\\n", i);
	system("pause");
	return 0;
}

/*
输出:

i = 11
循环结束后:i = 11
请按任意键继续. . .
*/

直接执行 do / while 循环体代码,然后判断 while 循环的表达式,此时 i 值执行完循环体代码,i=11while 表达式 i < 10 不成立,结束 do / while 循环,执行 do / while 之后的代码;

3.whiledo/while区别

  • while 循环:先判断 while 表达式,如果表达式为真,执行循环体的代码,否则跳过循环代码块(先判断,在循环);
  • do / while 循环:先执行循环体代码,再执行 while 表达式判断,如果表达式为真,则继续循环,否则结束循环(不管三七二十四,先循环了再说);

三.猜你喜欢

  1. 安装 Visual Studio
  2. 安装 Visual Studio 插件 Visual Assist
  3. Visual Studio 2008 卸载
  4. Visual Studio 2003/2015 卸载
  5. 设置 Visual Studio 字体/背景/行号
  6. C 语言代码注释
  7. C 语言数据类型 / 变量类型
  8. C 语言变量声明和定义
  9. C 语言格式控制符/占位符
  10. C 语言 printf 函数
  11. C 语言条件判断 if / else
  12. C 语言逻辑运算符
  13. C 语言三目运算符
  14. C 语言逗号表达式
  15. C 语言自加自减运算符(++i / i++)
  16. C 语言 for 循环
  17. C 语言 break 和 continue
  18. C 语言 while 循环
  19. C 语言 do while 和 while 循环

未经允许不得转载:猿说编程 » C 语言 do while 和 while 循环

本文由博客 - 猿说编程 猿说编程 发布!

以上是关于c语言问题咨询 do while 大括号的使用问题的主要内容,如果未能解决你的问题,请参考以下文章

求C语言中循环的具体用法

忘记在 do...while 循环中做

K&R C while 循环省略大括号

C语言do while问题

C++中do while()的用法

ifelse语句if条件可以为空吗