怎样强制退出递归函数

怎样强制退出递归函数,第1张

这个是不可以的,除非强制退出整个程序的执行,比如使用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"永远都没有喊圆禅办法打出来。


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

原文地址:https://54852.com/yw/12371260.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存