为什么尽量不要将try…catch写在循环中?

 我来答
WYZZWB2011407d2e
高能答主

2020-12-18 · 最想被夸「你懂的真多」
知道大有可为答主
回答量:5.2万
采纳率:77%
帮助的人:7420万
展开全部
循环语句不能用try...catch,而要用do...loop语句。
循环结构允许重复一行或几行代码。循环结构有Do…Loop、For…Next和For Each…Next结构。
用Do循环重复一个语句块,且重复次数不定。Do…Loop语句有几种变化形式,但每种形式都以计算数值为条件以决定是否继续重复。和判定结构一样,条件必须是一个数值或者值为非零或零的表达式
在当循环中,只要条件为True就执行条件:
Do While 条件
语句
Loop
Visual Basic重复这个Do循环时会首先测试条件,如果条件为零,则跳过所有语句,如果条件为非零,则Visual Basic执行语句,然后退回到Do While语句再测试条件。
因此,只要条件为True,循环可以随意重复多少次。如果一开始就为False,则不会重复语句。
Do…Loop语句的另一种演变形式是先重复语句,然后每次执行后测试条件,保证语句块至少重复一次:
Do
语句
Loop While 条件
直到循环,是指条件为假时,就重复循环。
循环零次或几次的一个循环结构是:

Do Until 条件
语句
Loop
至少循环一次的循环结构为:
Do
循环
Loop Until 条件
希望我能帮助你解疑释惑。
zhangsonglin_c
高粉答主

2020-12-18 · 醉心答题,欢迎关注
知道大有可为答主
回答量:3.7万
采纳率:83%
帮助的人:6786万
展开全部
try ... catch是异常捕获语句,但是不是普通语句,不普通在于,一旦出现异常,后面的语句不再执行,直接执行catch段的语句,原来中断的地方不能继续。
我们写循环,为的是能够重复地个过程。在这个过程中,尽量不出现不可控的中断。这与我们主动break是两回事。
因此,合适的做法是,尽可能避免异常数据的输入,或者出现异常时,提示操作者,让操作者选择下一步的动作。
比如,一个程序,要求输入整数在1~100之间,如果输入了超出范围的数,就出现异常了。可以在输入时就检验,如果超出范围,要求重新输入。
while (scanf("%d",&a),(a<1)||(a>100)) printf("超出1~100,重新输入\n");
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式