【发布时间】:2016-07-05 05:31:34
【问题描述】:
我正在编写一个代码,用户试图找到三角形的斜边。我的代码首先询问用户他们希望从 A 面还是 B 面开始。我使用 Switch 方法来涵盖这两种情况。在使用任何一种情况后,我希望我的代码做的是回到起点,直到用户退出。出于某种原因,我的代码只处理一种情况,但不会回到开头开始一个全新的循环。我使用了错误的方法吗?我是不是写错了代码?我能做些什么来解决它?
import java.util.Scanner;
public class HandleException {
public static void main (String[] args){
int data= 0;
int data1= 0;
int sum= 0;
Scanner input = new Scanner (System.in);
//ask user for a command
System.out.println("Which side would you like to start with A or B");
String s= input.next();
char letter= s.charAt(0);
loop:while (letter!= 'q'){
switch (letter){
//if user inputs 'A'
case 'a':
System.out.println("Enter value for side A: ");
data= input.nextInt();
System.out.println("Enter next command: A : value for side A; B : Value for side B; C: Calculate; Q : Quit program.");
s=input.next();
letter=s.charAt(0);
if (letter == 'b')
System.out.println("Enter Value For side B: ");
data1= input.nextInt();
System.out.println("Enter next command: A : value for side A; B : Value for side B; C: Calculate; Q : Quit program.");
s=input.next();
letter=s.charAt(0);
if (letter== 'c')
sum=data*data+data1*data1;
int sumsrt = (int) Math.sqrt(sum);
System.out.println("The hypotenuse is: "+sumsrt);
continue;
//if user inputs 'B'
case 'b':
System.out.println("Enter value for side B: ");
data= input.nextInt();
System.out.println("Enter next command: A : value for side A; B : Value for side B; C: Calculate; Q : Quit program.");
s=input.next();
letter=s.charAt(0);
if (letter == 'a')
System.out.println("Enter Value For side a: ");
data1= input.nextInt();
System.out.println("Enter next command: A : value for side A; B : Value for side B; C: Calculate; Q : Quit program.");
s=input.next();
letter=s.charAt(0);
if (letter== 'c')
sum=data*data+data1*data1;
int sumsrt1 = (int) Math.sqrt(sum);
System.out.println("The hypotenuse is: "+sumsrt1);
continue;
}
}
}
}
【问题讨论】:
-
@Makketronix 他的循环中有一堆 input.next()。
-
啊。但他们在案例“a”和案例“b”下。如果他放别的东西怎么办?
-
坦率地说,你正在做的事情很难理解,而且在我看来,你在 ifs 之后缺少一些
{和}。你是不是来自python? -
您可能还必须每次都创建新的扫描仪。见stackoverflow.com/questions/11871520/…
标签: java loops switch-statement