2直接输出地数值能否在本函数中直接使用,要看你定义的变量类型了。如果是全局变量,就可以;如果是局部变量,只能在给出定义的函数内使用。
题主是说在 run 外部调用 a、b、c?
那是不可能的,使用嵌套函数的目的就是为了让外部无法调用,以达到封装性的目的。
可以使用折衷的办法:
function run(obj){function a(){
return '我不爱你';
}
function b(){
return '我爱你';
}
function c(){
return '我只喜欢你';
}
switch(obj){
case 'a':
return a();
break;
case 'b':
return b();
break;
case 'c':
return c();
break;
}
return null;
}
使用时:
alert(run('a'));alert(run('b'));
alert(run('c'));
是的。
例如:
fun1(){
return;
printf("fun1");
}
fun2(){
fun1();
printf("fun2");
}
main(){
fun2();
}
扩展资料
return语句的使用说明
(1)返回值类型应和函数类型一致,不一致将返回值自动转换成函数类型。
(2)函数中可以有多条返回语句,这时一般与if语句联用,执行到哪一条返回语句,哪条返回语句起作用。
(3)函数中无return语句,执行至函数体结尾时返回,此时将返回一个不确定的值给函数。
(4)如果只需要从函数中返回,而不需带回值,使用不带表达式的return语句。
嗯,是这样的,不过return只能退出当前函数,如果多个函数嵌套就不行了,要想整个退出用exit
例如:
fun1(){
return;
printf("fun1") ;
}
fun2(){
fun1();
printf("fun2") ;
}
main(){
fun2();
}
此时main函数调用fun2,然后fun2调用fun1,fun1直接return了,fun1没有打印,但是fun2打印了,如果想不打印fun2,把fun1里面的return改为exit就好了
在C语言中,所有的函数定义,包括主函数main在内,都是平行的。也就是说,在一个函数的函数体内, 不能再定义另一个函数, 即不能嵌套定义
在例子中,没有嵌套定义的
int max(int a,int b)
{
if(a>b)return a;
else return b;
}//这是在定义max
而main()函数中,
void main()
{
int max(int a,int b);//这是声明,被调用函数,定义在main函数前,可以省略
int x,y,z;
printf("input two numbers:\n");
scanf("%d%d",&x,&y);
z=max(x,y);//这是调用
printf("maxmum=%d",z);
}
所以不矛盾
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)