我對編程本身并不陌生,我已經研究了C#已經有一段時間了,但我自己并沒有真正做過很多練習,我現在剛開始使用java,因為我想做Android應用程序和測試我新獲得的知識我想做一個基本的控制臺計算器,這是我到目前為止所得到的:
package calculatorSource;
import java.util.*;
public class calculatorJava {
private static Scanner input;
public static void main(String[] args) {
System.out.println("Select an operation");
String choice = null;
input = new Scanner(System.in);
while(choice == null) {
System.out.println("Type 'a' for adition, 's' for subtraction, 'm' for multiplication," " 'd' for division, or 'mo' for module.");
choice = input.next();
}
while(choice != null) {
if(choice.equals("a")) {
System.out.println(adition(0, 0));
choice = null;
} else if(choice.equals("s")) {
System.out.println(subtraction(0, 0));
choice = null;
} else if(choice.equals("m")) {
System.out.println(multiplication(0, 0));
choice = null;
} else if(choice.equals("d")) {
System.out.println(division(0, 0));
choice = null;
} else if(choice.equals("mo")) {
System.out.println(module(0, 0));
choice = null;
} else {
System.out.println("Option not available, please try again.");
choice = null;
}
}
}
public static float adition(float n1, float n2) {
input = new Scanner(System.in);
float result;
System.out.println("Enter first number:");
n1 = input.nextFloat();
System.out.println("Enter second number:");
n2 = input.nextFloat();
result = n1 n2;
System.out.println("Result is: " result);
return adition(result, result);
}
public static float subtraction(float n1, float n2) {
input = new Scanner(System.in);
float result;
System.out.println("Enter first number:");
n1 = input.nextFloat();
System.out.println("Enter second number:");
n2 = input.nextFloat();
result = n1 - n2;
System.out.println("Result is: " result);
return subtraction(result, result);
}
public static float multiplication(float n1, float n2) {
input = new Scanner(System.in);
float result;
System.out.println("Enter first number:");
n1 = input.nextFloat();
System.out.println("Enter second number:");
n2 = input.nextFloat();
result = n1 * n2;
System.out.println("Result is: " result);
return multiplication(result, result);
}
public static float division(float n1, float n2) {
input = new Scanner(System.in);
float result;
System.out.println("Enter first number:");
n1 = input.nextFloat();
System.out.println("Enter second number:");
n2 = input.nextFloat();
result = n1 / n2;
System.out.println("Result is: " result);
return division(result, result);
}
public static float module(float n1, float n2) {
input = new Scanner(System.in);
float result;
System.out.println("Enter first number:");
n1 = input.nextFloat();
System.out.println("Enter second number:");
n2 = input.nextFloat();
result = n1 % n2;
System.out.println("Result is: " result);
return module(result, result);
}
}
我知道它可能不是最好或更有效的計算器,但正如我所說的,我剛開始使用java,這是我目前所知的全部,程序可行,因為我可以添加,分割或我選擇的其他任何東西,但在那之后,我希望它給我選擇一個不同的操作,我在返回后把“choice = null”,但它似乎沒有工作,我試過到目前為止有幾件事,但我開始認為我可能誤解了實際上有什么回報,所以我認為最好轉向你們尋求幫助.
任何建議表示贊賞,謝謝! 解決方法: 代替
return adition(result, result);
在你的adition方法中,返回結果.
否則你只是重復相同的方法,直到堆棧溢出. (同樣適用于其他方法).
你的while(選擇!= null){loop是沒有必要的,因為你總是設置choice = null;.既然您也沒有在該循環(huán)中更改選擇的值,您也可以刪除循環(huán).
將參數傳遞給adition(etc)方法沒有意義,因為您總是會覆蓋它們.只需在這些方法中將它們聲明為局部變量:
public static float adition() { // No parameters
// ...
float n1 = input.nextFloat();
// ...
float n2 = input.nextFloat();
來源:https://www./content-1-351651.html
|