Программа алгебры на Java работает некорректно

#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 .