c语言问题咨询 do while 大括号的使用问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言问题咨询 do while 大括号的使用问题相关的知识,希望对你有一定的参考价值。
c语言问题咨询 do while 大括号的使用问题想问下大括号外和里面为什么一个正确,一个错误,环游 do while 语句要注意什么
看了你的程序,有3点要注意:
1. 所附2段程序中:
第一段程序中,是定义在do while循环以外,这所有编译器都支持,不会出错。第二个把其定义在do while循环里面,少数编译器接受这种“语句体”的局部变量定义,其它编译器会出错。
2. 看变量的作用域
对于第一段程序,n和retry都是相对于do while的“全局变量”,使用起来不会有问题。
而对于第二段程序,情况就要复杂一些。n没有问题,是在程序体里使用。但是对于retry,
由于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=10
,while
循环的表达式 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=11
,while
表达式 i < 10
不成立,结束 do
/ while
循环,执行 do
/ while
之后的代码;
3.while
和do
/while
区别
while
循环:先判断while
表达式,如果表达式为真,执行循环体的代码,否则跳过循环代码块(先判断,在循环);do
/while
循环:先执行循环体代码,再执行while
表达式判断,如果表达式为真,则继续循环,否则结束循环(不管三七二十四,先循环了再说);
三.猜你喜欢
- 安装 Visual Studio
- 安装 Visual Studio 插件 Visual Assist
- Visual Studio 2008 卸载
- Visual Studio 2003/2015 卸载
- 设置 Visual Studio 字体/背景/行号
- C 语言代码注释
- C 语言数据类型 / 变量类型
- C 语言变量声明和定义
- C 语言格式控制符/占位符
- C 语言 printf 函数
- C 语言条件判断 if / else
- C 语言逻辑运算符
- C 语言三目运算符
- C 语言逗号表达式
- C 语言自加自减运算符(++i / i++)
- C 语言 for 循环
- C 语言 break 和 continue
- C 语言 while 循环
- C 语言 do while 和 while 循环
未经允许不得转载:猿说编程 » C 语言 do while 和 while 循环
本文由博客 - 猿说编程 猿说编程 发布!
以上是关于c语言问题咨询 do while 大括号的使用问题的主要内容,如果未能解决你的问题,请参考以下文章