python函数调用之自我调用与C++比较

C++下的函数自我自我调用

  第一种方法

  

 1 #include <iostream>
 2 using namespace std;
 3 
 4 int rel_do(){
 5 
 6     int a;
 7     cout<<"please input :";
 8     cin>>a;
 9     if(a==1) {
10             cout<<a;
11             return 1;
12     }
13     else if(a==2) {
14             cout<<a;
15             return 1;
16     }
17

  第二种方法

 1 #include <iostream>
 2 
 3 using namespace std;
 4 
 5 int rel_do(){
 6 
 7     int a;
 8     cout<<"please input :";
 9     cin>>a;
10     if(a==1) {
11             cout<<a;
12             return 1;
13 
14     }
15     else if(a==2) {
16             cout<<a;
17             return 1;
18 
19     }
20     else {
21             cout<<"input error!!!"<<endl;
22             rel_do();
23 
24     }
25 }
26 
27 
28 int main(){
29 
30     rel_do();
31 
32     return 0;
33 }

    

  两种方法比较可以发现,rel_do()方法中,调用rel_do方法前加不加return都可以正常运行。

而在python中必须使用return。否则返回None,并且不报错

  

 1 def real_do():
 2     do = input('1:确认
'
 3                '2:取消' )
 4     if do == '1':
 5         return 1
 6     elif do == '2':
 7         return 2
 8     else:
 9         return real_do()
10 
11 print(real_do())

在Java中,return可以放在rel_do()方法前面也可以放在函数最后返回1.

 1 package javazero;
 2 
 3 import java.util.Scanner;
 4 
 5 public class Test {
 6 
 7     public static void main(String[] args) {
 8         // TODO Auto-generated method stub
 9         rel_do();
10 
11     }
12     static int rel_do(){
13         Scanner scanner = new Scanner(System.in);
14         System.out.println("please input :");
15         int a;
16         a=scanner.nextInt();
17         if(a==1) {
18             System.out.println(a);
19             return 1;
20 
21         }
22         else if(a==2) {
23             System.out.println(a);
24                 return 1;
25 
26         }
27         else {
28             System.out.println("input error!!");
29               rel_do();
30 
31         }
32         
33         return 1;
34     }
35 
36 }
 1 package javazero;
 2 
 3 import java.util.Scanner;
 4 
 5 public class Test {
 6 
 7     public static void main(String[] args) {
 8         // TODO Auto-generated method stub
 9         rel_do();
10 
11     }
12     static int rel_do(){
13         Scanner scanner = new Scanner(System.in);
14         System.out.println("please input :");
15         int a;
16         a=scanner.nextInt();
17         if(a==1) {
18             System.out.println(a);
19             return 1;
20 
21         }
22         else if(a==2) {
23             System.out.println(a);
24                 return 1;
25 
26         }
27         else {
28             System.out.println("input error!!");
29               return rel_do();
30 
31         }
32        
33     }
34 
35 }
原文地址:https://www.cnblogs.com/qingkongwuyun/p/8296501.html