我是新來的,所以請原諒我,如果在我的問題上有任何問題,或者它在錯誤的部分。我現在正在練習Java,我想知道如何做到這一點。下面的代碼:如何避免有人在變量上輸入錯誤信息時出錯?
package train;
import java.util.Scanner;
public class Train {
public static double sum(double n1, double n2){
double sum = n1 + n2;
return sum;
}
public static double subtraction(double n1, double n2){
double subtraction = n1 - n2;
return subtraction;
}
public static double mult(double n1, double n2){
double mult = n1 * n2;
return mult;
}
public static double div(double n1, double n2){
double div = n1/n2;
return div;
}
public static void main(String[] args) {
int choice;
boolean stay = true;
double val1, val2;
Scanner sc = new Scanner(System.in);
while (stay = true){
System.out.println("Selecione a operação desejada.");
System.out.println("1 - Adição, 2 - Subtração, 3 - Multiplicação, 4 - Divisão; Pressione 0 para sair.");
choice = sc.nextInt();
switch(choice){
case 1:
System.out.println("Digite dois valores a serem somados: ");
val1 = sc.nextDouble();
val2 = sc.nextDouble();
double valsum = sum(val1, val2);
System.out.printf("A soma desses dois valores é %f. ", valsum);
break;
case 2:
System.out.println("Digite dois valores a serem subtraídos: ");
val1 = sc.nextDouble();
val2 = sc.nextDouble();
double valsubtraction = subtraction(val1, val2);
System.out.printf("A subtração desses dois valores é %f. ", valsubtraction);
break;
case 3:
System.out.println("Digite dois valores a serem multiplicados: ");
val1 = sc.nextDouble();
val2 = sc.nextDouble();
double valmult = mult(val1, val2);
System.out.printf("A multiplicação desses dois valores é %f. ", valmult);
break;
case 4:
System.out.println("Digite dois valores a serem divididos: ");
val1 = sc.nextDouble();
val2 = sc.nextDouble();
double valdiv = div(val1, val2);
System.out.printf("A divisão desses dois valores é %f. ", valdiv);
break;
case 0:
System.exit(0);
break;
default:
System.out.println("Esta não é uma operação válida.");
break;
}
}
}
}
當比任何變量(就像是「雙頭」變量鍵入文本),該程序提供了一個錯誤「接受」信息,其它用戶類型的東西。有可能避免嗎?
如果是這樣,我該怎麼做?
如果您想要更大的靈活性,您可以使用當前的代碼捕獲InputMismatchException,或者將輸入解析爲String並從中解析數據。 – Mena