C++中throw是跳出整个循环还是整个函数

C++中throw是跳出整个循环还是整个函数,第1张

举个例子先。
funA()
{
//
while()
{
if()
{
throw new exception;
}
}
}
funB()
{
funA();
}
int main()
{
try{
funB();
}
catch(exception e)
{
//捕获到异常
}
}
函数A中,由于某种原因抛出了一个异常,这不但会退出循环,同时还会退出整个A函数。
由于调用A函数的B没有捕获这个异常,因此B也要退出。异常继续往上传递,现在到了main函数,它里面使用try-catch捕获到了这个异常,因此进入了catch代码块。
简而言之就是 throw一个异常会退出这个函数的调用堆栈,直到其上级堆栈有捕获为止。如果都没有捕获,那么程序退出。退出错误为,unhandled exception。

你说的是E7和E8的不同,所以,逻辑上和表1没有关系,和表2的F列也没有关系,抛开他们,不要将问题复杂化,E7和E8不同的几种可能:
1/E7原来就输入了公式
2/B8,C8,D8没输入
3/E8没有公式
--------------------------------------
你补充的情况发现确实是超出日产应用的特例,确实看到了EXCEL是有预测应用公式的,我也做了个试验:
Sheet1
1 1 2
2 2 4
3 3 6
4 4 8
C列,我用了公式:=A1+VLOOKUP(A1,A:B,2,0),C1下拉应用到C4
然后我在A5,B5分别输入:5,6,C5自动预测生成结果11
然后我C列倒退为空白,将公式换为:=A1+Sheet2!B1,C1下拉应用到C4
然后我在A5,B5分别输入:5,6,C5没有产生自动预测结果
同样的,试验过非连续单元格、非连续输入、非数值
综上,自动预测的实现条件非常局限:同页、连续单元格、连续输入、数值型。。。,由于没有太深入,只是表面判断,应该还有其他的限制条件。
建议简单的使用下拉应用,不要牵扯了,否则,你都不知道他什么时候失灵的。

break是从循环中跳出,如要从函数中跳出,可以用return。
break
在一些计算机编程语言中是保留字,其作用大多情况下是终止所在层的循环。
1、break语句对if-else的条件语句不起作用。
2、在多层循环中,一个break语句只向外跳一层。

C语言

switch(开关语句)中,break
语句还可用来在执行完一个
case(分支)后立即跳出当前
switch
结构。

扩展资料:


break语句通常用在循环语句和开关语句中,当break用于开关语句switch中时,
可使程序跳出switch而执行switch以后的语句;
如果没有break语句,
则将成为一个死循环而无法退出,如下:
1、break如果用于循环是用来终止循环。
2、break如果用于switch中,则是用来终止switch。
3、break不能直接用于if语句,除非是循环内的一个字句。
4、break用在多层循环中,表示退出里他最近的一次循环。
参考资料来源:百度百科-break函数

c语言中提前结束一个子函数,可以用return 语句返回。
实例:
//用于除法,a是被除数,b是除数,当b为0的时候不能做除法,此时可以将函数提前返回,不做除法运算。函数定义如下:
int func(int a,int b)
{
if(b==0){
return false;
}
return a/b;
}

void main()
{
stu stu[N];int len=0,x;
while((x=welcomepage())!=0) //只要不输出0,就一直循环 *** 作
{
switch(x)
{
case 1:initlist(stu,len);break; //选项调用函数
case 2:inputdata(stu,len);break;
case 3:insertdelete(stu,len);break;
case 4:showdata(stu,len);break;
case 5:showall(stu,len);break;
case 6:savedata(stu,len);break;
}
}
}
int welcomepage(void)
{
int x;
printf("\n1数据库初始化");
printf("\n2输入数据");
printf("\n3插入删除数据");
printf("\n4显示学生信息");
printf("\n5显示所有信息");
printf("\n6保存所有信息");
printf("\n0退出系统");
printf("\n");
scanf("%d",&x);
return x;
}


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

原文地址: https://outofmemory.cn/yw/13363507.html

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

发表评论

登录后才能评论

评论列表(0条)

保存