黑马程序员技术交流社区

标题: Java基础(2)(坚持坚持坚持坚持坚持) [打印本页]

作者: abckids    时间: 2016-7-11 22:20
标题: Java基础(2)(坚持坚持坚持坚持坚持)
0、求和思想
        定义一个变量,记录不断变化的数据 通过count记录num变化的次数
        int count = 0;

        int num=1;
        count = count+1;

        num = 2;
        count = count+1;

1、运算符
        算数运算符
                + - * / %  
                ++ --
        赋值运算符
                += : 拿运算符左边的变量和右边的式子的值进行运算,最后将运算后的结果赋值给左边的变量举例
                int a = 1;
                a += 1+1;
                a= 3;

                += 隐含了一个强制类型转换
                面试题
                byte b = 1;
                b = b +1;
                b+=1 不会报错,因为隐含了强制类型转换,b  = (byte)(b+1);
        比较运算符
                > < >= <= == !=
        逻辑运算符
                && 短路与:如果左边的表达式结果为false,右边不在执行
                || 短路或:如果左边的表达式结果为true,右边不在执行
                | 无论左边为什么,右边都执行
                & 无论左边为什么,右边都执行
                ^ 一个数异或同一个数两次,结果还是这个数 a^b^b = a;注意面试题:互换两个数

        三元运算符 三目运算符 条件表达式
                表达式1 ? 表达式2 : 表达式3;
2、基本类型转换
        隐士转换
                小类型数据自动提升为大类型数据
                byte,short,char ->int ->long->folat->double
        显示转换
                要转换的数据类型 变量名= (要转换的数据类型)值;
                double强转int,小数全部干掉
3、Scanner类的使用

        第一步导包
        import java.util.Scanner;
        第二部创建变量
        Scanner scanner = new Scanner(System.in);//System.in是标准输入流,scanner是变量名,可以任意起
        第三部调用方法
        建议:每次调用nextXXX()方法之前给scanner对象重新赋值
        int num = scanner.nextInt();
        String str = scanner.next();
4、Math类,String
        String str = " 兰州拉面啦啦啦啦 ";//字符串对象
        int len = str.length();//获取字符串长度
        String subString = str.substring(1,2);//包左不包右,对str没有影响
        String newStr = str.trim();//去掉字符串两端的空格,对str没有影响

        long num = Math.round(3.3);//3
        Math.ceil(double d):返回大于等于该数的最小整数
        Math.floor(double d)返回小于等于该数的最大整数  -1.1
       
5、小票案例
/*
        超市管理系统
       
        展示商品报价单
       
        购物小票:
        让用户输入每种货物的购买数量
        计算汇总的变量
        判断总金额和少林寺两种数据是否满足打折条件,满足就打折
        打印购物小票
        数据四舍五入及强制小数转整数
*/
import java.util.Scanner;
public class Supermarket {
        public static void main(String[] args) {
                /*
                        商品报价单
                        1、显示商品报价单
                        2、用户输入购买数量
                */

                String slsName = "少林寺酥饼核桃";  //名称
                String slsID = "090115";                        //编号
                double slsPrice = 15.5;                                //单价
                String slsUnit = "个";                                //单位
                int slsNumber;                                                //数量
                double slsMoney;                    //金额
               
                String skName = "皇家特供尚康杂粮牡丹饼(复合营养型)";
                String skID = "090027";
                double skPrice = 14.5;
                String skUnit = "个";
                int skNumber;
                double skMoney;
               
                //1、显示商品报价单
                System.out.println("                        欢迎光临");
                System.out.println();
                System.out.println("商品编号        商品名称         商品单价     商品计价单位");
                System.out.println(slsID+"       "+slsName+"       "+slsPrice+"           "+slsUnit);
                System.out.println(skID+"       "+skName+"       "+skPrice+"           "+skUnit);
               
                //2、用户输入购买数量
                Scanner sc = new Scanner(System.in);
                System.out.println();
                System.out.println("请输入您要购买的"+slsName+"数量:");
                slsNumber = sc.nextInt();//输入少林寺酥饼核桃 的购买数量
                slsMoney = slsPrice * slsNumber;//少林寺酥饼核桃  的总价
                System.out.println("请输入您要购买的"+skName+"数量:");
                skNumber = sc.nextInt();//输入 皇家特供尚康杂粮牡丹饼(复合营养型) 的购买数量
                skMoney = skPrice * skNumber;//皇家特供尚康杂粮牡丹饼(复合营养型) 的总价
               
               
                /*
                        票头
                */
                System.out.println("            欢  迎  光  临    ");
                System.out.println("        品名            售价     数量     金额");
                System.out.println("-------------------------------------------------------");

                /*
                        票体
                        如果商品名称超过7个字,就截取前7个字+...
                */
                System.out.println((slsName.length()>7 ? slsName.substring(0,7)+"...":slsName) + "("+slsID+")   "+slsPrice+"  *  "+slsNumber+"   =  "+slsMoney);
                System.out.println((skName.length()>7 ? skName.substring(0,7)+"...":skName) + "("+skID+")   "+skPrice+"  *  "+skNumber+"   =  "+skMoney);
                System.out.println("-------------------------------------------------------");
               

                /*
                        票脚
                        统计购买了几种商品
                        统计购买了多少件商品
                        统计一共花了多少钱,在这里需要注意有优惠条件
                */
                int totalItemsNumber = 2;  //商品项数
                int  totalNumber = slsNumber+skNumber; //商品件数
                double totalMoney = slsMoney+skMoney; //商品总金额
                double afterTotalMoney = (totalMoney >= 1000&&slsNumber>=30) ? totalMoney*0.9:totalMoney;//打折优惠,如果总价 >=1000并且少林寺饼子的数量>=30 就打9折
               
                System.out.println(totalItemsNumber+"项商品   共计:"+totalNumber+"件");
                //在打印总金额时,超市显示四舍五入后的整数,不包含小数点,需要用到Math类四舍五入方法,及强制类型转换
                afterTotalMoney = Math.round(afterTotalMoney);
                System.out.println("总计:"+(int)afterTotalMoney+"元");
                System.out.println("您真的太幸运了,本次打折活动为您节省了"+(totalMoney-(int)afterTotalMoney));
                System.out.println("凭此小票换取发票");
               
        }
}
作者: xfbyxq    时间: 2016-7-11 22:57
;加强中田吕加加加




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