如何在Java中获得循环程序
我是Java编程新手,我想尝试制作一个计算器。我编写了代码,但唯一的问题是它只运行一次。我想知道是否有办法让它“循环”。我的意思是,在主方法的开头添加一个问题,这样我可以再次运行计算器。这是我的密码如何在Java中获得循环程序,java,Java,我是Java编程新手,我想尝试制作一个计算器。我编写了代码,但唯一的问题是它只运行一次。我想知道是否有办法让它“循环”。我的意思是,在主方法的开头添加一个问题,这样我可以再次运行计算器。这是我的密码 import java.util.Scanner; public class calculatorFull { public static void main(String[] args){ int op; double num1, num2;
import java.util.Scanner;
public class calculatorFull {
public static void main(String[] args){
int op;
double num1, num2;
Scanner operation = new Scanner(System.in);
System.out.println("1 - Add\n2 - Subtract\n3 - Multiply\n4 - Divide");
System.out.print("Which operation would you like to perform? ");
op = operation.nextInt();
if((op != 1) && (op != 2) && (op != 3) && (op != 4)){
System.out.println("That wasn't an option...");
}else{
System.out.print("First number: ");
num1 = operation.nextDouble();
System.out.print("Second number: ");
num2 = operation.nextDouble();
if(op==1){
Add(num1, num2);
}else if(op==2){
Sub(num1, num2);
}else if(op==3){
Mult(num1, num2);
}else if(op==4){
Div(num1, num2);
}
}
}
public static void Add(double x, double y){
double numsum;
numsum = x + y;
System.out.printf("%s + %s = %s", x, y, numsum);
}
public static void Sub(double x, double y){
double numsum;
numsum = x - y;
System.out.printf("%s - %s = %s", x, y, numsum);
}
public static void Mult(double x, double y){
double numsum;
numsum = x * y;
System.out.printf("%s * %s = %s", x, y, numsum);
}
public static void Div(double x, double y){
double numsum;
numsum = x / y;
System.out.printf("%s / %s = %s", x, y, numsum);
}
}
提前感谢您的帮助
顺便说一句,我认为这可能不同于这个问题()。我调用了不同的方法,从main改为只调用1个方法。不知道这是否会改变任何解决方案,或者是否是同一个问题,但感谢您指出可能是这样。您可以设置一个sentinel值以退出程序(即,在您的选项中为-1),并跟踪我们将在while循环中不断检查的变量。如果op变为-1,它将退出。否则,它将重新启动while循环内的逻辑
int op = 0;
while(op != -1) {
double num1, num2;
Scanner operation = new Scanner(System.in);
System.out.println("1 - Add\n2 - Subtract\n3 - Multiply\n4 - Divide");
System.out.print("Which operation would you like to perform? ");
op = operation.nextInt();
if((op != 1) && (op != 2) && (op != 3) && (op != 4)){
System.out.println("That wasn't an option...");
}else{
System.out.print("First number: ");
num1 = operation.nextDouble();
System.out.print("Second number: ");
num2 = operation.nextDouble();
if(op==1){
Add(num1, num2);
}else if(op==2){
Sub(num1, num2);
}else if(op==3){
Mult(num1, num2);
}else if(op==4){
Div(num1, num2);
}
}
试试这个
更新:
使用以下命令:
import java.io.*;
public class StackOverFlow
{
// arguments are passed using the text field below this editor
public static void main(String[] args) throws IOException
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int cont = 0;
while(cont == 0){
System.out.println("Inside");
// Put your calculator code here
System.out.println("Enter 1 to exit or 0 to continue");
cont = Integer.parseInt(br.readLine());
}
System.out.println("Outside");
}
}
最简单的方法是在计算完成并打印后调用main方法。您可以使用
main(null)
来实现这一点。只需在if-else块之后添加它。代码如下:
if(op==1){
Add(num1, num2);
}else if(op==2){
Sub(num1, num2);
}else if(op==3){
Mult(num1, num2);
}else if(op==4){
Div(num1, num2);
}
System.out.println(); // prints blank line
main(null);// calls main method (re-runs program)
这将完成操作,然后重复该过程。检查
for
循环和while
循环。可能的重复还请注意,在Java中,方法名称通常以小写字母开头:启动语言的最佳方法是阅读教程。您也应该尝试一下,在将其作为答案发布之前。这是无限的loops@Tom谢谢你指出。我轻描淡写地直接回答了它。@dddjewelsbbbb这个答案中没有伪代码。@Tom你是对的,我向你投赞成票。我想我应该从一开始就说代码片段不可编译。将代码段视为伪代码的子集是不公平的。@bh34e5很乐意帮助:)如果这对您有所帮助,如果您能接受答案,我将不胜感激。祝你有一个美好的一天:)当我这样做的时候,它说op还没有初始化yet@bh34e5更正:Java警告您它没有初始化,因为局部变量没有得到初始值。我的错。@bh34e5您只需要将op值指定为0。这非常有用。我知道在批处理编程中有一种方法可以实现这一点,你可以说“goto main”,但我不认为在java中有一种方法可以实现这一点。就是这样。谢谢你的回复!
if(op==1){
Add(num1, num2);
}else if(op==2){
Sub(num1, num2);
}else if(op==3){
Mult(num1, num2);
}else if(op==4){
Div(num1, num2);
}
System.out.println(); // prints blank line
main(null);// calls main method (re-runs program)