Java学习day02-数据类型和运算符

今日目标:

1.变量
2.数据类型
3.简单的人机交互(Scanner的使用)
4.运算符:
赋值运算符
算术运算符
关系运算符
逻辑运算符
条件运算符
5.运算符的优先级

1.变量:

1.什么是变量:可以变化的量
2.你心中如何理解变量:一个用于装数据的容器。
思考:
A.计算机如何存储数据呢?
内存条,机械硬盘
B.硬盘和内存如何分工?
编辑的文档在没有保存时,临时存储在内存中,保存后,永久保存在硬盘上。
3.内存和硬盘又是如何存储数据的呢?
二进制文件的形式保存。
简述二进制 010 2 0 10110100 01011010 01011010 01011010
计算机中最小的二进制位数是8位
1byte(字节)=8bit(8位二进制)
1KB=1024byte
1MB=1024KB
1GB=1024MB
1TB=1024GB
4.命名口诀:字 下 美 人 数 骆驼
取名要有意义
不能使用关键字

2.数据类型:

在这里插入图片描述
在这里插入图片描述

public class Hello1 {
    public static void main(String[] args) {
        //1.声明一个变量并赋值:变量类型 变量名=变量值;
        int a1=12;
        //2.拆开:声明和赋值
        int a2;
        a2=15;
        //3.同时声明多个变量
        int a3,a4,a5;
        //4.声明多个变量的同时赋值
        int b1=10,b2=2,b3=2;
        // 变量如果没有赋值,它有值吗?没有值
        //System.out.println(a3);(程序会显错误)
    }
}

基本数据类型4类8种:
1.整数(4种): Byte: 字节型 ,1个字节 -128~127
Short:短整型,2个字节 范围:
Int : 整型(默认),4个字节 范围:正负21亿左右
long :长整型,8个字节 63 31 -21亿 * 21亿 * 2~21亿 * 21亿 * 2

在这里插入图片描述

 byte a=127,b=-128;//[-128,127]
        short a1=32767;//[-32768,32767]
         int a2=2147483647;//[-2^31,2^31-1]
        long a3=2147483647;//[-2^63,2^63-1]

在这里插入图片描述

2.浮点数(小数2种):
float :单精度 :4个字节 1符号位 8指数位 23
Double:双精度:8个字节 采用科学计数法

3字符型:
char: 2个字节 a d f ab 3 4 你

4.布尔型 boolean :true false
引用数据类型:String 数组 类 接口

3.数据类型转换

1.自动类型转换条件:
类型兼容:整数型和整数型 非整数型和非整数型 整数型和非整数型
目标类型大于源类型:小的向大的转换
2.强制类型转换:目标类型小于源类型
案例:张三余额宝有100元,过了一天,收益0.1元,问:现在余额宝有多少?
在这里插入图片描述

用二进制解释int到byte的强制类型转换
转换规律:

1.数值类型之间转换:
小到大,正常转换
大到小,强制转换
2.整数 和char之间的转换

在这里插入图片描述

public class Hello3 {
    public static void main(String[] args) {
        //大到小,强制类型转换
        short s=12,s1=12;
        int i=13,i1=13;
        s= (short) i;
        i1=s1;
        System.out.println("s="+s+" "+"i1="+i1);
        byte b=1,b1=1;
        long l=2,l1=2;
        l=b;
        b1= (byte) l1;
        //不同类型 正常类型
        //1.int(4) -floor(4)
        int a1=12;
        float f1=12.1f;
//        a1= (int) f1;
        f1=a1;
        //2.int 4 double 8  byte -float
        //不同类型 2 --非正常型
        //int char
        int a=97;
        char c='a';
        a=c;
        System.out.println(a);
        c= (char) a;
        System.out.println(c);
        System.out.println(a);
        c=98;
        System.out.println(c);
        System.out.println((char)70);
    }
}

在这里插入图片描述

4.变量使用案例:

1.变量的定义格式: 数据类型 变量名=变量值;
如: int a=88;含义是:将88这个数值赋给a这个整型变量。通俗来说,变量是一个容器,在内存中会开辟一个小空间用来存储数据。
打个比方:有一个房间,房间号是a,房间里面住的客人是c
Char a=’c’.

2.输出张三的姓名,年龄,部门,地址,等相关信息。
现公司出现人员变动,将张三换成李四,出现代码改动量大的问题。变量帮我们解决。

public class Hello4 {
    public static void main(String[] args) {
        //输出张三的姓名,年龄,部门,地址,等相关信息。
        //现公司出现人员变动,将张三换成李四,出现代码改动量大的问题。变量帮我们解决。
        //String helloString = new String(helloArray);
        String name1="张三";
        String age="20";
        String bumen="行政部";
        String dizhi="湖北";
        System.out.println("姓名:"+name1+"\n年龄:"+age+"\n部门:"+bumen+"\n地址:"+dizhi);
        name1="李四";
        System.out.println("姓名:"+name1+"\n年龄:"+age+"\n部门:"+bumen+"\n地址:"+dizhi);
    }
}

在这里插入图片描述

5.程序如何同用户交互:(Scanner)

1.思考:打游戏时,控制英雄的运动和技能是如何实现的?
在键盘上输入的上下左右,游戏程序如何知道?
2.分析:程序中必然有一个装置来接收键盘按键的值。
3.Scanner的使用
分析,记事本上打字的过程:系统接收键盘上的按键对应的字母,然后传入到搜狗输入法,合成相应的文字,然后在电脑屏幕上显示。
4.思考:java程序如何接收键盘输入的内容呢?
Jdk中封装了一个类Scanner,该类的职责就是接收键盘的输入值,并保存到程序的变量中,体现了程序和用户的交互功能。
使用步骤:案例演示(String,int,double,boolean输入)
1.导包(别人写的类,作为当前类的引用)
2.创建对象(是否需要创建对象,取决于调用的方法是否为static静态的)
3.对象调用方法来接收输入值

.next()//输入内容
String name=sc.next();
byte age=sc.nextByte();
float gonz=sc.nextFloat();

在这里插入图片描述
请输入一个人的 姓名,年龄,存款,婚否?
在这里插入图片描述

public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入你的姓名:");
        String name=sc.next();
        System.out.println("姓名:"+name);

        System.out.println("请输入你的年龄:");
        byte age=sc.nextByte();
        System.out.println("年龄 : " + age);

        System.out.println("请输入你的工资:");
        float gonz=sc.nextFloat();
        System.out.println("工资 : " +gonz);

        System.out.println("婚否:");
        String hun=sc.next();
        System.out.println(hun);
//            main2();

    }

在这里插入图片描述

6.赋值运算符:

1.赋值:往变量对应的内存空间里面塞一个值。
2.书写格式: int a = 8; 往往在定义一个变量的时候会为其赋值。
3.赋值特点:新值会覆盖原来的旧值
第一次给变量赋值称为“初始化”。
4.案例:
如何借助赋值运算符实现两个数的交换。

 public static void main2() {
        int a=5,b=10,c;
        c=a;
        a=b;
        b=c;
        System.out.println("a="+a);
        System.out.println("b="+b);
        System.out.println("------------------------------------");
    }
    private static void main3() {
        int a=6,b=8;
        a=a+b;
        b=a-b;
        a=a-b;
        System.out.println("a = " + a);
        System.out.println("b = " + b);
    }

在这里插入图片描述

7.算术运算符:

1.基本算术运算:+ - * / % ++i i—

重点:++ – 在变量的前面还是后面
在这里插入图片描述

2.复合算术运算:+= -= *= /= %=
3.案例:
用户输入自己的会员卡号(3位数),程序取出会员卡号的各个位数,并打印结果。
计算出个位,十位,百位 输出

 private static void main4() {
        Scanner kahao=new Scanner(System.in);
        System.out.println("请输入自己的会员卡号(3位数):");
        int a1=kahao.nextInt();
        int b1,b2,b3;
        b1=a1%10;
        b2=(a1/10)%10;
        b3=a1/10/10;
        System.out.println("卡号为:"+b3+" "+b2+" "+b1);

    }

在这里插入图片描述

8.关系运算符

== != < > >= <=
关系运算符的结果是布尔值
1<i<3 i<3&&i>1

9.逻辑运算符:

参与逻辑运算符的表达式必须是布尔类型

逻辑与 & 逻辑或 |
短路与 && 短路或 ||
在这里插入图片描述

如何理解短路:电路图中的短路是:电流绕过某段电器,从导线走。
1.&&运算中,第一个条件为false,整个语句结果必然为false,所以程序忽略第二个条件, 此为短路与
2.||运算中,第一个条件为true,整个语句结果必然为true,所以程序忽略第二个条件, 此为短路或
3.优先级:! > && > ||
在这里插入图片描述

private static void Main1() {
        int i=0,b=0;
        System.out.println(false&&i++>0);//后面的i++不会进行运算
        System.out.println("i = " + i);
        System.out.println(false&b++>0);//后面的b++会进行运算
        System.out.println("b = " + b);

        System.out.println(true||++i<2);
        System.out.println("i = " + i);//2
        System.out.println(true|++b<2);
        System.out.println("b = " + b);//2

        System.out.println(!true);
    }

在这里插入图片描述

10.条件运算符

1.书写格式:
在这里插入图片描述

也称三元(三目)运算符
2.使用场景:当一个变量的取值有两种可能时,用条件运算符来为变量赋值。
3.案例:用户输入考试成绩,判断是否及格,并打印结果。
4.课堂小案例:输入自己的游戏得分,大于100是王者,否则是青铜,并打印结果。

private static void Main2() {
        int age=18;
        System.out.println(age>=18?"可以进":"再等等");
        String s=age>=18?"可以进":"再等等";//三目运算符必须要有接收值
        System.out.println(s);
    }

在这里插入图片描述

11.运算符的优先级

**加粗样式**
在这里插入图片描述

12.补充:位运算符 & |

案例:6&3 =2 6|3=7 转换成二进制 110 和011 每个位上0代表假,1代表真
110
011 &
01 0

1 1 0
0 1 1 |
1 1 1

 private static void Main3() {
        System.out.println(5|8);
        System.out.println(5|5);
        System.out.println(5|2);
        System.out.println(12&12);
        System.out.println(23|15);
    }

在这里插入图片描述

作业:

1.小明在银行存了100元,年利率是5%,存了三年,用程序算出并打印三年后的存款是多 少?
2.用户依次根据程序的提示,输入自己的姓名,年龄,余额宝金额。利用不同数据类型的 变量一次性打印以上信息。

3.使用变量存储数据,实现个人简历信息的输出
效果图:
在这里插入图片描述

4、接受用户输入的两个数,分别求这两个数的和,差,积,商,模

5、根据天数(由用户输入)计算这些天数中有几周和剩余的天数,例如:用户输入的是45
,输出结果为:45天是6周余3天

6、商场为员工提供了基本工资(3000元)、物价津贴及房租津贴,其中物价津贴为基本工资的40%,房租津贴为基本工资的25%。编程计算实领工资
编写程序,定义变量分别存放一本图书的信息,图书的信息包括:书名(bookName)、作者(bookAuthor)、单价(bookPrice)、库存量(bookStock)、是否为热售图书(isHot),要求图书的信息由用户输入

1.计算结果x+a%3*(int)(x+y)%2/4 a=7(int) x=2.5 y=4.7(double)
2.计算结果(float)(a+b)/2+(int)x%(int)y a=2 b=3 x=3.5 y=2.5

3.使用条件运算符实现求两个数中的较大值并将最大值输出,这两个数是由用户从控制台输入的
4.让用户输入矩形的两个边长(int数据类型),用条件表达式判断:如果两个边长相等,则为正方形,不等为长方形,最后并将其面积输出。
例如:用户输入的长和宽是:4和5,则输出结果是:该图形是长方形,面积是20
5.用JAVA代码实现一个数字加密器,加密规则是:加密结果 = (整数*10+5)/2 + 3.14159加密结果仍为一整数,其中用到的参数整数是由用户输入的,例如:用户输入的是:5,则加密后输出的结果是:30(注意:加密后的结果一定是整数,数据类型转换)
6、输入一个数,判断该数是不是3的倍数,并将结果输出

7、题目:输入三个整数x,y,z,请把这三个数由小到大输出。
8、题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。

9.用户输入自己的随机四位数卡号,编写程序输出提示信息是否中奖。中奖规则,个位数字+十位数字+百位数字+千位数字 之和>18则中奖。
提示信息分别是:“恭喜您,中奖啦!”“很遗憾,没有中奖!”

10.张三公交卡有72.5元,李四公交卡有26.3元,让他二人交换公交卡,编写程序输出交换前和交换后,两人手上公交卡的金额。

11.题目:用户输入一个数,判断是否是"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。

部分作业代码:

import java.util.Scanner;

public class ZuoYe {
    public static void main(String[] args) {
        Seven();
    }

    private static void Seven() {
        System.out.println("请输入存放图书的信息");
        Scanner sc7=new Scanner(System.in);
        System.out.println("书名:");
        String bookName=sc7.next();
        System.out.println("作者:");
        String bookAuthor=sc7.next();
        System.out.println("单价:");
        String bookPrice=sc7.next();
        System.out.println("库存量:");
        String bookStock=sc7.next();
        System.out.println("是否为热销图书:");
        String isHot=sc7.next();
        System.out.println("图书的信息为:书名:"+bookName+" 作者:"+bookAuthor+" 单价:"+bookPrice+
                " 库存量:"+bookStock+" "+isHot+"热销图书");

    }

    private static void Six() {
        double a=3000,b;
        b=a+a*0.4+a*0.25;
        System.out.println("实领工资为:"+b+"元");
    }

    private static void Five() {
        System.out.println("请输入天数:");
        Scanner sc5=new Scanner(System.in);
        int a1=sc5.nextInt();
        System.out.println(a1+"天是"+(a1/7)+"周余"+(a1%7)+"天");
    }

    private static void Four() {
        System.out.println("请输入两个数:");
        Scanner sc4=new Scanner(System.in);
        double a=sc4.nextDouble(),b=sc4.nextDouble();

        System.out.println("这两个数的和为:"+(a+b));
        System.out.println("这两个数的差为:"+(a-b));
        System.out.println("这两个数的积为:"+(a*b));
        System.out.println("这两个数的商为:"+(a/b));
        System.out.println("这两个数的模为:"+(a%b));
    }

    private static void Three() {
        String name="小明",jishu="Java",aihao="篮球";
        int age=25,shijian=3,xiangmu=5;
        System.out.println("这个同学的姓名是:"+name);
        System.out.println("年龄是:"+age);
        System.out.println("工作了"+shijian+"年");
        System.out.println("做过"+xiangmu+"个项目");
        System.out.println("技术方向是"+jishu);
        System.out.println("兴趣爱好是:"+aihao);
    }

    private static void Two() {
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入自己的姓名:");
        String name=sc.next();
        System.out.println("请输入自己的年龄:");
        String age=sc.next();
        System.out.println("请输入自己的余额宝金额:");
        double jine=sc.nextDouble();
        System.out.println(name+" "+age+"岁 "+"余额宝金额:"+jine);
    }

    private static void One() {
        double a1=100.0,b1;
        System.out.println("存款数为:"+a1);
       b1=a1*1.05*1.05*1.05;
        System.out.println("三年后存款数为:"+b1);
    }
}

提升

import java.util.Scanner;

public class ZuoYe2 {
    public static void main(String[] args) {
        eleven();
    }

    private static void eleven() {
        System.out.println("请输入一个三位数:");
        Scanner sc11=new Scanner(System.in);
        int a=sc11.nextInt(),b;
//        System.out.println((a/100)+" "+((a/10)%10)+" "+(a%10));
//        b=(a/100)^3+((a/10)%10)^3+(a%10)^3;
        b=(a/100)*(a/100)*(a/100)+((a/10)%10)*((a/10)%10)*((a/10)%10)+(a%10)*(a%10)*(a%10);
        if (a==b){
            System.out.println("这个数是水仙花数");
        }else {
            System.out.println("这个数不是水仙花数1");
        }
    }

private static void seven() {
        int a,b,c;
        Scanner sc7=new Scanner(System.in);
        a=sc7.nextInt();b=sc7.nextInt();c=sc7.nextInt();
        int max=a>b?a:b;
        max=max>c?max:c;

        int min=a<b?a:b;
        min=min<c?min:c;

        int mid=a+b+c-max-min;
        System.out.println(min+" "+mid+" "+max);
    }

    private static void eight() {
        int score;
        Scanner sc8=new Scanner(System.in);
        System.out.println("请输入成绩");
        score=sc8.nextInt();
        System.out.println(score>=90?"A":(score>=60?"B":"C"));
    }

    private static void Two() {
        int a=2,b=3;
        double x=3.5,y=2.5;
        System.out.println((float)(a+b)/2+(int)x%(int)y);
    }

    private static void One() {
        int a=7;
        double x=2.5,y=4.7;
        System.out.println(x+a%3*(int)(x+y)%2/4);
    }
}

下次课程预习内容:
主要知识点:if 和switch以及相关变形选择结构

Java学习顺序

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值