這是我從命令行獲取3個整數的主要方法,然後在我的驗證方法中進行解析。主要方法中的調用方法
但是我有一個調用其他方法的操作方法,但是我不知道什麼類型的數據以及我必須放在我的operatinMethod()
原因開關中的只有一個);也在我的mainMethod()
中撥打operationMehod()
本身?
請讓我知道如果我不清楚?感謝名單!
主要方法:
這是我從命令行獲取3個整數的主要方法,然後在我的驗證方法中進行解析。主要方法中的調用方法
但是我有一個調用其他方法的操作方法,但是我不知道什麼類型的數據以及我必須放在我的operatinMethod()
原因開關中的只有一個);也在我的mainMethod()
中撥打operationMehod()
本身?
請讓我知道如果我不清楚?感謝名單!
主要方法:
看來要執行以下操作
CountPrimes(int) , getFactorial(int) and isLeapYear(int)` ....
現在告訴我什麼樣的價值觀,你會得到作爲command line arguments
。如果你想執行所有三個操作,然後通過修改案值,並給輸入值
performOperations(int value, int caseConstant)
上面的語句將獲得兩個參數一個是價值,另一種是選擇操作constatnt。
if(validateInput(args[0],args[1],args[2])) {
performOperations(Integer.parseInt(args[0]),1);
performOperations(Integer.parseInt(args[1]),2);
performOperations(Integer.parseInt(args[2]),3);
}
謝謝,現在對我有意義!你真棒:) – NilR
public static void main(String[] args){
/*whatever here*/
try{
performOperation(Integer.parseInt(args[3])); /*if option is supplied with the arguments*/
}catch(Exception e){ }
}
private static void performOperations(int option) {
switch(option) {
case 1: // count Prime numbers
countPrimes(a);
break;
case 2: // Calculate factorial
getFactorial(b);
break;
case 3: // find Leap year
isLeapYear(c);
break;
}
}
命令行參數臨危輸入作爲String []
和值可以被解析到您所需的數據類型,也可以把它作爲功能parameters.See這裏大約Command line args parsing
public static void main(String[] args){
}
糾正我,如果錯了:)
你沒有錯,但我有3個整數,我需要傳遞到operationMethod和我的主要方法!!都必須是同樣! – NilR
你可以用這種方法試試:
我避免使用全局變量,它們是沒有必要的,我認爲你總是試圖做的事:
代碼應該是這樣的:
public class Test {
// Global Constants
final static int MIN_NUMBER = 1;
final static int MAX_PRIME = 10000;
final static int MAX_FACTORIAL = 12;
final static int MAX_LEAPYEAR = 4000;
public static void main(String[] args) {
if (validInput(args)) {
performOperations(args);
}
}
private static boolean validInput(String[] args) {
if (args.length == 3 && isInteger(args[0]) && isInteger(args[1]) && isInteger(args[2]) &&
withinRange(Integer.parseInt(args[0]),MIN_NUMBER, MAX_PRIME) &&
withinRange(Integer.parseInt(args[1]),MIN_NUMBER, MAX_FACTORIAL) &&
withinRange(Integer.parseInt(args[2]),MIN_NUMBER, MAX_LEAPYEAR))
return true;
return false;
}
//Check the value within the specified range
private static boolean withinRange(int userInput, int min, int max) {
boolean isInRange = true;
if (userInput < min || userInput > max) {
isInRange = false;
}
return isInRange;
}
private static boolean isInteger(String value) {
try {
Integer.parseInt(value);
} catch (NumberFormatException nfe) {
return false;
}
return true;
}
//Perform operations
private static void performOperations(String[] args) {
countPrimes(args[0]);
getFactorial(args[1]);
isLeapYear(args[2]);
}
}
與for()循環,什麼也不做什麼? –
只有在所有三個參數驗證成功的情況下,您是否要執行每個操作? – iDroid
你能舉出例子參數和預期的結果嗎? – Uooo