package y2kmz.com.leijia20070706;//创建一个包 import javax.swing.JOptionPane;//引用javax.swing这个包的JOptionPane这个类 public class exercise_1_3 {//公共类exercise_1_3 // double sum = 0; // double sum_2 = 0; int Numlength;//定义一个整型Numlength变量 static int Aflag=0;;//定义一个整型常量Aflag为0 public double summary(double ss)//???这句不理解,不知道什么意思 { String num_1 = JOptionPane.showInputDialog("输入数字:");//输入数字 /* * 按位判断是否是数字 */ /***********************************************************/ Numlength=num_1.length();//将输入的字符串赋值给Numlength for(int i=0;i<Numlength;i++)//for循环,为了遍历输入的值 { if(!((num_1.charAt(i)>='0'&&num_1.charAt(i)<='9')||num_1.charAt(i)=='='))//这句前面我明白,后面那个==‘=’是什么意思?? { JOptionPane.showMessageDialog(new JOptionPane(), "您输入的不是数字!");//输出框 Aflag=1;//符合上面的if条件,则Aflag为1 System.out.print(Aflag);//打印出Aflag的值 System.exit(0);//Aflag的返回值为0的话程序正常结束 } } /****************************************************************/ if (num_1.equals("=")) {//这个查了一下,大概是说将num_1和"="比较,如果相等,则为ture,不同返回false JOptionPane.showMessageDialog(new JOptionPane(), ss); //碰到等号,输出结果 System.exit(0);//false的情况下,程序正常结束 } double num_2 = Double.parseDouble(num_1);//返回输入的数字进行运算 return num_2;//????这句和上面那句有些奇怪,不明白,返回的num_2是指num_1为数字么?还有num_2返回去哪里? } //00000000000000000000000000000000000000000000000000000000000000000 public static void main(String[] args) {//莫非上面那个是你自己写的一个exercise_1_3类,上面的num_2是返回到这里面的方法里? // ====== double sum = 0;//定义双精度浮点型变量sum为0 exercise_1_3 haha = new exercise_1_3();//创建对象exercise_1_3haha // ======= String symbol_1 = JOptionPane.showInputDialog("输入符号:");//输入框,并将输入的字符串赋值给symbol_1 // ====== /* * 判断为加号的时候累加 */ if (symbol_1.equals("+")) {//if语句,如果symbol_1和"+"相等,则为ture,否则为false while (true) {//当为真的时候,执行下面语句 double num_3 = haha.summary(sum);//???这句不知道是什么意思,上网也没找到 sum = sum + num_3;//累加 } } // ==================================================================== // /* * 判断为减号的时候累减 */ else if (symbol_1.equals("-")) {//else if语句,symbol_1和"-"相等的话,为真,否为假 double num_3 = haha.summary(sum);//这句依旧不知道是啥 sum = num_3;//将num_3的值赋给sum while (true) {//当if语句为真,执行下面语句 num_3 = haha.summary(sum);//求解,这句啥意思?? sum = sum - num_3;//累减 } } /* * -===================================================== * * 判断为乘号的时候累乘 */ else if (symbol_1.equals("*")) { double num_3 = haha.summary(sum); sum = num_3; while (true) { num_3 = haha.summary(sum); sum = sum * num_3; } } // ////////////////////////////////////// /* * 判断为除号的时候累除 */ else if (symbol_1.equals("/")) { double num_3 = haha.summary(sum); sum = num_3; while (true) { num_3 = haha.summary(sum); if ((num_3-0)<0.0000000001) //除数不能为0//???这句话为什么小于的值是那个 {JOptionPane.showMessageDialog(new JOptionPane(), "不能为0"); break;} sum = sum / num_3; } } // ======================== else JOptionPane.showMessageDialog(new JOptionPane(), "程序出错");//输出框 System.exit(0);//返回值为0时,程序正常结束 } }