2017-09-17 43 views
-6

希望能夠在不傳遞值Summ(0,0)的情況下調用Summ方法。什麼是在不傳遞值的情況下調用Java方法的優雅方法?

如何以優雅的方式完成此操作?

import java.util.Scanner; 

    public class Recursive { 

     public static void main(String[] args) { 
      Summ(0, 0); 

      } 


     public static int Summ (int a ,int b) { 

      System.out.println("Enter the first interger"); 
      Scanner sc = new Scanner(System.in); 
      a = sc.nextInt(); 
      System.out.println("Enter the second interger"); 
      b = sc.nextInt(); 
      if (a < 0 || b< 0) 
       return 0; 
      else { 
       int c = a+b; 
       return c; 
      } 
+3

雅將有'sum'方法做一個工作,取兩個值,總結在一起,相反,你應該得到的值的方法外,並把它們傳遞到方法 - 恕我直言 – MadProgrammer

+1

你想什麼實現是很差的做法。研究單一責任原則。 –

+0

你在問你的問題時也犯了一些錯誤。請通過[遊覽],[幫助]和[如何提出一個很好的問題](http://stackoverflow.com/help/how-to-ask)部分來了解本網站的工作方式並幫助您改善您當前和未來的問題,這可以幫助您獲得更好的答案。 –

回答

0

更改爲public static int Summ(){...},並調用它像:summ();也宣佈int a,b;功能

import java.util.Scanner; 

public class Recursive { 

    public static void main(String[] args) { 
     Summ(); 

     } 


    public static int Summ() { 
    int a,b; 

     System.out.println("Enter the first interger"); 
     Scanner sc = new Scanner(System.in); 
     a = sc.nextInt(); 
     System.out.println("Enter the second interger"); 
     b = sc.nextInt(); 
     if (a < 0 || b< 0) 
      return 0; 
     else { 
      int c = a+b; 
      return c; 
     } 
1

參數是可選的方法中。因此,在這種情況下,請刪除參數a和b,並將它們定義爲Summ方法內的局部變量。以下是修改後的代碼的外觀。

import java.util.Scanner; 

public class Recursive { 

    public static void main(String[] args) { 
    Summ(); 

    } 

    public static int Summ() { 

    System.out.println("Enter the first interger"); 
    Scanner sc = new Scanner(System.in); 
    int a = sc.nextInt(); 
    System.out.println("Enter the second interger"); 
    int b = sc.nextInt(); 
    if (a < 0 || b < 0) 
     return 0; 
    else { 
     int c = a + b; 
     return c; 
    } 
    } 
} 
相關問題