• 计算器 输入式子计算结果 (字符串、抛异常)


     1 import java.util.Scanner;
     2 
     3 public class JiSuanQi {
     4     public static void execute(int first_number, int second_number)
     5             throws MyException {
     6         // 手写异常不能让输入的数为负数
     7         if (first_number < 0 || second_number < 0) {
     8             throw new MyException("参数不能为负数");
     9         }
    10     }
    11 
    12     public static void main(String[] args) {
    13         for (;;) {
    14             Scanner input = new Scanner(System.in);
    15             System.out.println("请输入式子");
    16             String shizi = input.nextLine();
    17             String[] allfuhao = { "+", "-", "*", "/" };
    18             jiSuan(shizi, allfuhao);
    19 
    20         }
    21     }
    22 
    23     private static void jiSuan(String shizi, String[] allfuhao) {
    24         for (int i = 0; i < allfuhao.length; i++) {
    25             for (int j = 0; j < shizi.length(); j++) {
    26                 String fu = String.valueOf(shizi.charAt(j));
    27                 if (allfuhao[i].equals(fu)) {
    28                     try {
    29                         String first = shizi.substring(0, j);
    30                         Integer first_number = Integer.parseInt(first);
    31                         String second = shizi.substring(j + 1);
    32                         Integer second_number = Integer.parseInt(second);
    33                         execute(first_number, second_number);
    34                         if (i == 0) {
    35                             System.out.println(shizi + "="
    36                                     + (first_number + second_number));
    37                         } else if (i == 1) {
    38                             System.out.println(shizi + "="
    39                                     + (first_number - second_number));
    40                         } else if (i == 2) {
    41                             System.out.println(shizi + "="
    42                                     + (first_number * second_number));
    43                         } else if (i == 3) {
    44 
    45                             System.out.println(shizi + "="
    46                                     + (first_number / second_number));
    47                         }
    48 
    49                     } catch (MyException e) {
    50                         System.out.println("不允许使用负数");
    51                     } catch (NumberFormatException e) {
    52                         System.out.println("不是数字");
    53                     } catch (ArithmeticException e) {
    54                         System.out.println("除数不能为0");
    55                     }
    56                     return;
    57                 }
    58 
    59             }
    60 
    61         }
    62         System.out.println("没找到运算符号,重新输入");
    63     }
    64 }
     1 public class MyException extends Exception {
     2     
     3     public MyException(){
     4         super();
     5     }
     6     public MyException(String Exception ){
     7         super(Exception);
     8         
     9     }
    10 }
  • 相关阅读:
    现代算法(一) 基因算法
    01-02周 学习总结
    Linux命令之touch详解
    Linux命令之umask详解
    Linux命令之wc详解
    Linux命令之stat详解
    Linux命令之tail详解
    Linux命令之head详解
    Linux命令之less详解
    Linux命令
  • 原文地址:https://www.cnblogs.com/hmswt/p/9493407.html
Copyright © 2020-2023  润新知