2024-10-19 19:12 采纳率: 100%
浏览 3
已结题

请问下,用JAVA的switch语句该怎么写

img


请问下这个用switch条件语句该怎么做呀?有没有人可以帮忙回答一下

  • 写回答

1条回答 默认 最新

  • Roc-xb 领域专家: 后端开发技术领域 2024-10-19 19:22
    关注
    
    import java.util.Scanner;
    
    public class QuadraticEquationSolver {
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            
            // 提示用户输入系数a, b, c
            System.out.println("请输入系数a, b, c:");
            double a = sc.nextDouble();
            double b = sc.nextDouble();
            double c = sc.nextDouble();
            
            // 使用 switch 语句处理不同的情况
            switch (Double.compare(a, 0)) {
                case 0: // 如果 a == 0,处理为一元一次方程
                    if (b != 0) {
                        // 计算一次方程的解
                        double x = -c / b;
                        System.out.println("一元一次方程的解为: x = " + x);
                    } else {
                        // 如果 b 也为 0,表达式无意义
                        System.out.println("表达式无意义。");
                    }
                    break;
    
                default: // 处理二次方程情况
                    // 计算判别式 Δ = b^2 - 4ac
                    double discriminant = b * b - 4 * a * c;
                    
                    // 根据判别式 Δ 的值,处理不同的情况
                    switch (Double.compare(discriminant, 0)) {
                        case 0: // 如果 Δ == 0,只有一个实数解
                            double x = -b / (2 * a);
                            System.out.println("一个实数解: x = " + x);
                            break;
                        
                        case 1: // 如果 Δ > 0,存在两个不等实数根
                            double x1 = (-b + Math.sqrt(discriminant)) / (2 * a);
                            double x2 = (-b - Math.sqrt(discriminant)) / (2 * a);
                            System.out.println("两个不等实数根: x1 = " + x1 + ", x2 = " + x2);
                            break;
    
                        case -1: // 如果 Δ < 0,存在两个共轭复数根
                            double realPart = -b / (2 * a);
                            double imaginaryPart = Math.sqrt(Math.abs(discriminant)) / (2 * a);
                            System.out.println("两个共轭复数根: ");
                            System.out.println("x1 = " + realPart + " + " + imaginaryPart + "i");
                            System.out.println("x2 = " + realPart + " - " + imaginaryPart + "i");
                            break;
                    }
                    break;
            }
    
            sc.close(); // 关闭扫描器
        }
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    1人已打赏

报告相同问题?

问题事件

  • 系统已结题 10月27日
  • 已采纳回答 10月19日
  • 创建了问题 10月19日