#java #switch-statement
#java #оператор переключения
Вопрос:
Я создал программу, которая должна отображать уравнение после выбора типа алгебраического уравнения, которое по какой-то причине не работает. Я попытался изменить имя сканера, но он просто отображает неправильный выбор при выборе выражения. Я был бы очень признателен, если бы вы могли мне помочь, спасибо. Это код:
/** WAP using switch case to print the following :
1. 3X 4Y Z
2. 3A^2 4B^3 3C*/
import java.util.*;
class F
{
public static void main(String a[])
{
Scanner in = new Scanner(System.in);
System.out.println("Algebra Program executed : No. to be typed: ");
System.out.println(" (i) 3X 4Y Z 1 ");
System.out.println(" (ii) 3A^2 4B^3 3C 2 ");
int ch = in.nextInt();
switch(ch)
{
//Program 1
case '1': Scanner sc = new Scanner(System.in);
System.out.println("Type a number for X...");
int X = sc.nextInt();
System.out.println("Type a number for Y...");
int Y = sc.nextInt();
System.out.println("Type a number for Z...");
int Z = sc.nextInt();
int sum = (3*X) (4*Y) Z;
System.out.println(" ");
System.out.println("Value of X is " X);
System.out.println("Value of Y is " Y);
System.out.println("Value of Z is " Z);
System.out.println("Value of 3X 4Y Z is " sum);
break;
//Program 2
case '2': Scanner hi = new Scanner(System.in);
System.out.println("Type a number for A...");
double A = hi.nextDouble();
System.out.println("Type a number for B...");
double B = hi.nextDouble();
System.out.println("Type a number for C...");
double C = hi.nextDouble();
double pro = 3*Math.pow(A, 2) 4*Math.pow(B, 3) 3*C;
int isum = (int) pro;
System.out.println(" ");
System.out.println("Value of A is " A);
System.out.println("Value of B is " B);
System.out.println("Value of C is " C);
System.out.println("Value of 3A^2 4B^3 3C is " isum);
break;
//Else
default: System.out.println("Wrong Choice");
}
}
}```
Ответ №1:
Вам нужно изменить регистр на case 1
и case 2
вместо case '1'
и case '2'
.
Обратите внимание, что '1'
и '2'
являются char
литералами; не int
литералы. значение ASCII '1'
равно 49
, а значение '2'
is 50
.