东流二 2021-03-19 10:39 采纳率: 100%
浏览 162
已采纳

Java 中switch语句,case四个,但是不管选择1234的哪个,都是按照第一个输出

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package hz;
import java.io.*;
/**
 *
 * @author user
 */
public class Hz {
    public static void main(String[] args){
    try
    {
                InputStreamReader isr = new  InputStreamReader (System.in);
                BufferedReader br = new BufferedReader(isr);
                System.out.println("请输入计算种类:\n1.四则运算:\n2.计算面积:");
                int i1 = Integer.valueOf(br.readLine());
                if(i1==1)
                {
                    System.out.println("输入计算方法:\n1.加法\n2.减法\n3.乘法\n4.除法");
                    int i2 = Integer.valueOf(br.readLine());
                    System.out.println("输入两个数用空格隔开:");
                    String[] s = br.readLine().split(" ");
                    double x = Double.valueOf(s[0]);
                    double y = Double.valueOf(s[1]); 
                    switch(i1)
                    {
                        case 1:
                                System.out.println(x+"+"+y+"="+(x+y));
                                break;
                                
                        case 2:
                                System.out.println(x+"-"+y+"="+(x-y));
                                break;
                        case 3:
                                System.out.println(x+"*"+y+"="+(x*y));
                                break;
                        case 4:
                                System.out.println(x+"/"+y+"="+(x/y));
                                break;
                    }   
                }else
                {
                    System.out.println("选择图形:\n1.正方形\n2.矩形\n3.图形\n4.三角形");
                    int i2 = Integer.valueOf(br.readLine());
                    System.out.println("输入两个数用空格隔开:");
                    String[] s = br.readLine().split(" ");
                    double x = Double.valueOf(s[0]);
                    
                    switch(i2)
                    {
                        case 1:
                                System.out.println("正方形面积:"+x*x);
                                break;
                        case 2:
                                double y = Double.valueOf(s[1]);
                                System.out.println("矩形面积:"+x*y);
                                break;
                        case 3:
                                System.out.println("圆形面积:"+Math.PI*x*x);
                                break;
                        case 4:
                                 double z = Double.valueOf(s[1]);
                                System.out.println("三角形面积:"+0.5*x*z);
                                break;
                }
    }
    }catch(Exception e)
    {
        e.printStackTrace();
        
    }}

     
    
    
    
    
    
    
    
    
}

  • 写回答

4条回答 默认 最新

  • 规则边缘 2021-03-19 10:52
    关注

    应该使用i2作为switch的条件,i1是第一个选择,i2才是第二个选择

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 为什么eprime输出的数据会有缺失?
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的
  • ¥15 r语言蛋白组学相关问题