A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

      毕老师的视频看到函数这里,结合前面的知识写了个计算器,只能加减乘除,而且只能整数加减,整数乘,除只能是余数是0.限制好多吧,
  因为智商是硬伤,代码太多。我相信有非常简单的代码就能写出来,我这太乱了。见笑了
import java.util.Scanner;
public class hanshuDemo2{
        public static void main(String[] args){
                Scanner in=new Scanner(System.in);
                for(;;){
                System.out.println("请输入一个整数");//输入小数就报错,
                       
                int a=in.nextInt();//用什么能同时接收小数和整数呢
                System.out.println("请输入一个整数");
                int b=in.nextInt();
                System.out.println("请输入+或-或*或/");
                String c=in.next();//本来想用char接收,发现不行
                switch(c){
                case "+":
                        int e=getResult1(a,b);//如果输入的是小数,这个是int型也还是不行
                        System.out.println(a+c+b+"="+e);
                        break;
                case "-":
                        int f=getResult2(a,b);
                        System.out.println(a+c+b+"="+f);//声明的变量太多了,无奈智商只能到这......    = =
                        break;
                case "*":
                        int g=getResult3(a,b);
                        System.out.println(a+c+b+"="+g);
                        break;
                case "/":
                        int h=getResult4(a,b);
                        System.out.println(a+c+b+"="+h);
                        break;
                }
        }       
}       
        public static int getResult1(int x,int y){
                return x+y;
        }
        public static int getResult2(int x,int y){
                return x-y;
        }public static int getResult3(int x,int y){
                return x*y;//如果小数乘以小数,保留多少位小数呢?
        }public static int getResult4(int x,int y){
                return x/y;//如果9/3,除不尽,保留多少位小数呢?
        }
}

6 个回复

倒序浏览
艾玛~~~~~~~~~9/3能除尽,擦  应该是 比如被除数小于除数结果有小数肿么办呢
回复 使用道具 举报
小数用double类型处理。scanner有nextDouble方法
回复 使用道具 举报
fantacyleo 发表于 2014-9-4 11:30
小数用double类型处理。scanner有nextDouble方法

如果输入的是整数,用int a=in.nextInt(); 接收了
    又要声明一个double b来接手?????好复杂,想不过来了
回复 使用道具 举报
28了还能学吗 发表于 2014-9-4 11:35
如果输入的是整数,用int a=in.nextInt(); 接收了
    又要声明一个double b来接手?????好复杂,想 ...

整数也可以用nextDouble接收啊。全改成double不就ok了?
回复 使用道具 举报
本帖最后由 OCTSJimmy 于 2014-9-4 11:50 编辑

可以不使用nextInt,而是用:
1、 String next(Pattern pattern)
          如果下一个标记与指定模式匹配,则返回下一个标记。
2、 String next(String pattern)
          如果下一个标记与从指定字符串构造的模式匹配,则返回下一个标记。
pattern是一个正则表达式。
虽然最后得到的是一个String,但可以先判定是否存在小数点,假如存在,就可以new Float(str)如此将字符串变为单精度小数,双精度类似。整数可以 new Integer(str)。
回复 使用道具 举报
燃烧 中级黑马 2015-6-28 22:14:02
7#
楼主最终进黑马去学习了么
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马