我對編程本身並不陌生,我已經研究了C#很長一段時間了,但我自己並沒有真正做過很多練習,我現在剛開始使用java,因爲我想要做Android應用程序和測試我新學到的知識,我想要做一個基本的控制檯計算器,這裏就是我有這麼遠:如何在java中退出循環?
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」放在返回之後,但它似乎並沒有工作,I我已經嘗試了幾件事情,但我開始認爲我可能誤解了實際的回報,所以我認爲最好轉向你們尋求幫助。
任何意見表示讚賞,謝謝!
而不是'返回adition ,result);'在你的'adition'方法中,返回'result',否則你只要重複相同的方法直到堆棧溢出(對於其他方法也是如此) –
'while(choice!= null ){'循環沒有必要,因爲你總是設置'choice = null;'。因爲你也不會改變那個循環中的'choice'的值,所以你可以直接刪除循環。 –