黑马程序员技术交流社区

标题: java基础小小的计算机程序历程 [打印本页]

作者: 欧阳风凌    时间: 2015-9-24 22:26
标题: java基础小小的计算机程序历程
今天是黑马java基础班第二天,鹏鹏老师让我们写个小小的计算机程序,初次写码,留个纪念
刚刚开始是这样的
/*
    需求:
        写一个计算器
    思路:
        先声明计算机的效果,只能加减乘除
        让顾客选择加减乘除,用数字方法选择
        然后让顾客输入两个数字
        输出提示结果
    步骤:
        输出语句,这个计算机只能用来做加减乘除的运算,加减乘除分别对应1234,让顾客选择
        条件语句,符合哪个用哪个计算,别的错误
        提升输入两个数字
        打印结果
        
*/
import java.util.Scanner;

class CounterDemo {
    public static void main(String[] args) {
        System.out.println("此计算器只能计算加减乘除\n如果选择加法,请输入1\n如果选择减法,请输入2\n如果选择乘法,请输入3\n如果选择除法,请输入4");
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();  //用来界定用户选择的算法类型
        if (n>0 && n<5) {    //如果n 不是1到4,4个数字,直接是不在计算机能力范围内。
            System.out.println("请输入第一个数字");
            int number1 = sc.nextInt();// 接收第一个int的数据
            System.out.println("请输入第二个数字");
            int number2 = sc.nextInt();// 接收第二个int的数据
            int result;
            if (n == 1) {  //如果结果是加法,进行加法运算;
                result = number1 + number2;
                System.out.print(number1+"+"+number2+"="+result);
            }
            else if (n == 2) {  //如果结果是减法,进行减法运算;
                result = number1 - number2;
                System.out.print(number1+"-"+number2+"="+result);
            }
            else if (n == 3) {  //同上
                result = number1 * number2;
                System.out.print(number1+"*"+number2+"="+result);
            }
            else if (n == 4) {   //同上
                result = number1 / number2;
                System.out.print(number1+"/"+number2+"="+result);
            }
        }
        else {
            System.out.println("不在此计算器能力范围内");
        }
    }
}
后来觉得这样似乎不太好,还需要选择运算符,所以变成这样

/*
需求:计算器能直接输入运算符
思路:
1、说明计算机的性能
2、提示输入第一个数字
3、提示输入运算符
4、提示输入第二个数字
5、输出结果,如果不对,提示
步骤:
1、输出语句,说明计算器性能
2、输入第一个数字
3、输入运算符进行判断,如果是正确的运算符,继续往下输入第二个数字,如果不是,提示不是运算符
4、判断各个运算符,进行运算
*/

import java.util.Scanner;

class CounterDemo {
    public static void main(String[] args) {
        System.out.println("此计算机支持加法,减法,乘法,除法,余数运算\n请输入第一数字");
        Scanner sc = new Scanner(System.in);
        int number1 = sc. nextInt();
        System.out.println("请输入运算符");
        String n = sc.next();
        if (n == "+"  || n == "-" || n == "*" || n == "/" || n == "%") {
            System.out.println("请输入第二个数字");
            int number2 = sc.nextInt();
            
            if (n == "+") {
                System.out.println(number1+"+"+number2+"="+(number1+number2));
            }
            else if (n == "-") {
                System.out.println(number1+"-"+number2+"="+(number1-number2));
            }
            else if (n == "*") {
                System.out.println(number1+"*"+number2+"="+(number1*number2));
            }
            else if (n == "/") {
                System.out.println(number1+"/"+number2+"="+(number1/number2));
            }
            else if (n == "%") {
                System.out.println(number1+"%"+number2+"="+(number1%number2));
            
            }
        }
        else
            System.out.println("运算符输入错误");
    }
}
这个程序虽然编译通过了,但是实际中老是出问题,在运算符输入时,无论是输入+-*/总是直接输出了 运算符输入错误,好不容易经过同学指点,发现了问题,在字符串的比较中,不能用“==”,需要使用equals,于是变成这样,终于得到要求了。
import java.util.Scanner;

class CounterDemo {
    public static void main(String[] args) {
        System.out.println("此计算机支持加法,减法,乘法,除法,余数运算\n请输入第一数字");
        Scanner sc = new Scanner(System.in);
        int number1 = sc. nextInt();
        System.out.println("请输入运算符");
        String n = sc.next();
        if (n.equals("+") || n.equals("-") || n.equals("*") || n.equals("/") || n.equals("%")) {
            System.out.println("请输入第二个数字");
            int number2 = sc.nextInt();
            
            if (n.equals("+")) {
                System.out.println(number1+"+"+number2+"="+(number1+number2));
            }
            else if (n.equals("-")) {
                System.out.println(number1+"-"+number2+"="+(number1-number2));
            }
            else if (n.equals("*")) {
                System.out.println(number1+"*"+number2+"="+(number1*number2));
            }
            else if (n.equals("/")) {
                System.out.println(number1+"/"+number2+"="+(number1/number2));
            }
            else if (n.equals("%")) {
                System.out.println(number1+"%"+number2+"="+(number1%number2));
            
            }
        }
        else
            System.out.println("运算符输入错误");
    }
}

but,还是有很多不完美哦,现在只能支持int型的,而且,只能是两位数,希望通过后面的学习,更加改进,可以支持各个数据类型,无论是多少个数字的运算,用=好表示结尾,代表最后的结果输出。



作者: 哈哈我赢了    时间: 2015-9-24 22:29
学习一下。。
作者: 欧阳风凌    时间: 2015-9-24 22:48
哈哈我赢了 发表于 2015-9-24 22:29
学习一下。。

谢谢支持哦




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2