C程序中do while语句可以进行嵌套使用吗?

C程序中do while语句可以进行嵌套使用吗?,第1张

可以,但是你这样写是错的,do~while()的作用是,先执行do里面的语句,再执行while(),为执行while里的语句,执行完后再回到while(),为真继续执行,否则退出,你这样写的话就是执行do~,到while()为真,并且while(ch=='Y'||ch=='y')

是语法错误,while(ch=='Y'||ch=='y'){语句}应该这样才对.

#include "stdafx.h"

#include <conio.h>

#include <ctype.h>

#include<stdio.h>

int main( void )

{

int m,n,x,max,ch

do

{

printf("请输入二个数:\n")

scanf_s("%d%d",&m,&n)

if(m>n) m=m+n,n=m-n,m=m-n

for(x=1x<=mx++)

{

if(m%x==0&&n%x==0) max=x

}

printf("最大公约数为:%d\n\n",max)

printf("重新开始计算请按“Y”,退出请按“N”")

ch=_getch()

ch=toupper(ch)

printf("\n\n")

}

while(ch=='Y'||ch=='y')

{

printf("请输入二个数:\n")

scanf_s("%d%d",&m,&n)

if(m>n) m=m+n,n=m-n,m=m-n

for(x=1x<=mx++)

{

if(m%x==0&&n%x==0) max=x

}

printf("最大公约数为:%d\n\n",max)

printf("重新开始计算请按“Y”,退出请按“N”")

ch=_getch()

ch=toupper(ch)

printf("\n\n")

}

}

用do~while()可以这样写,不过这样有点麻烦

循环控制语句没什么嵌套限制!

这个程序用getchar()来输入一个字符很有可能会提前接收了里层循环的'\n',所以可能提早退出或无法退出,因为getchar()对'\n'的处理不好,即接收到'\n'会停止,而把这个'\n'留给下一个getchar()接收。

建议你把getchar()改成getch(),时输入的字符不回显,但可以接收任何字符,包括'\n'

do----while循环先执行,然后再判断while后面的条件是不是成立

do{

do{...

}while(...)

}while(...)

上面的语句相当与先执行一次外层do然后接着执行内曾的do-while循环体,当执行然内层的循环体之后,判断外层的while条件

其实也可以用!只是不好控制,只要你控制的好,也无所谓啊


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12045954.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存