
这个是不可以的,除非强制退出整个程序的执行,比如使用exit(0)这样的语句。
C语言的函数调用是一层一层的,本层函数执行完会返回上一层函数执行,如果一个递归函数已经调用了10层了,不可能说支持退出这十层函数的执行,直接返回最上层的函数,这个是不现实的。
但是也可以使用其他方法,比如全局变量之类的,每个函数都去判断基渗这个全局变量,这样只要不满足,一层一层的退出函数,也可以实现这个功能,代码举例如下:
int flag=0 //全局变量,判断递归函数是否退出。void fun1() //递归函数实现
{
xxxx //其他语句
fun1() //递归调带锋缺用
if(flag==1) //判断是否退出
{
return
}
xxxx //其他语句
if(xxxx) //需要退出递归函数的条件
{
flag=1 //设置标志
return //退出,这样会一直蠢辩退出所有递归函数
}
}
C语言中可以使用函数system()、getch()实现按键退出。
1、直接调用系统函数 system(“pause”):
system()会调用fork()产生子进程, 由子进程来调用/bin/sh-c string 来执行参数string 字高友符串所代表的命令, 此命令执行完后随即返回原调用的兄念宴进程。
system(“pause”)可以实现冻结屏幕,便于观察程序的执行结果。
2、调用getch()函数:
此函数是一个不回显函数,当用户按下某个字符时,函数自动读取,无需按回车,需要include<conio.h>
扩展资料
一、使用getch函数设置退出
所在头文件:conio.h。
函数用途:从控制台读羡银取一个字符,但不显示在屏幕上。
函数原型:intgetch(void)
返回值:读取的字符。
二、打开文件的 *** 作通过标准库函数 fopen
函数 fopen 的第二个参数指定了文件的访问模式,访问模式决定了流所许可的输入和输出 *** 作。对访问模式字符串的许可值有严格的限制。
该字符串的第一个字符只能为三种形式:r(read)、w(write)或者 a(append)。另可加字符b表示以二进制方式打开文件。
可郑尘以用这个语句,他是用来强制腔穗让程序退出的。System.exit(1)
例子:
public class Test {
public void doSomething(){
System.out.println("do something...")
System.exit(1)
System.out.println("Cannot be done...")
}
}
因为有System.exit(1)语句,"Cannot be done"永远都没有喊圆禅办法打出来。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)