我对编程本身并不陌生,我已经研究了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'的值,所以你可以直接删除循环。 –