java基础——数据类型、运算、键盘输入

发布于:2023-01-18 ⋅ 阅读:(329) ⋅ 点赞:(0)

一. 数据类型

数据类型 : 数据的类型

1.1 基本数据类型

基本类型有四类八种

  • 整数

    • byte short int long

        public static void main(String[] args) {
            
            byte b = 127;
            short s = 32000;
            int i = 2100000000;
            /*
             * 如果为long类型变量赋值时
             * 如果值得范围在int类型的范围内,可以不用加L/l为后缀
             * 如果值得范围大于int类型的范围,则必须添加L/l
             */
            long l = 6000000000l;
            
            //定义年龄   工资    班级人数
             int age=20;
            int wages= 10000;
            int students= 36;
            
        }
  • 小数

    • float double

        public static void main(String[] args) {
            //3.14
            double pi = 3.14;
            
            float f = 3.14F;
            
            
            double d1 = 100000000.0;
            double d2 = 1.0E9;  // 1.0*10^9
            
            double d3 = 0.001;  // 1.0*10^-3
            double d4 = 1.0E-3;  // 1.0*10^-3
            
            
            //定义圆周率    价格    身高  
            double pii= 3.14;
            double price= 99.99;
            double height= 180.5;
        }
  • 布尔

    • boolean

        public static void main(String[] args) {
            
            boolean b1 = true;
            boolean b2 = false;
            
            boolean r2 = 4>33;
            
            System.out.println(r2);
            
            //是否毕业  是否婚配   是否成年   是否是老板    pi是否大于3.14
            boolean isGraduate=true;
            boolean isMarry = false;
            boolean isAdult= false;
            boolean isBoss = false;
            boolean p5=3.1415>3.14;
            
        }
  • 字符

    • char

      • char本质上就是整数,表示askii表中对应的字符

      • char表示的无符号的两个字节的整数 [0-65535]

        • 首位不再是符号位,不能等于负数

        • 1111 1111 1111 1111 = 2^16-1 = 65535

        • 0000 0000 0000 0000 =0

        public static void main(String[] args) {
            /*
            基本数据类型 - 字符 (单个数字,字母,符号,汉字,.....)
             * 
             * a b c ...  z
             * A B C .... Z
             * 0 1 2 3 ...9
             * + - * /... 
             *   char c = '字符';  使用单引号括起来
             * 
             */
            char c = 'a';
            char c2 = '+';
            
            char c3 = 97;  // a字符的编号
            
            System.out.println(c3);
            
            char c4 = 33;   // !
            
            System.out.println(c4);
            
            //定义  F  G   @
            char c1='F';
            char c2=70;
            char c3='G';
            char c4=71;
            char c5='@';
            char c6=64 ;
            
        }
  •     public static void main(String[] args) {
            
            
            //转义字符
            // '  
            char c = '\'';
            
            // \
            char c2 = '\\';
            
            //tab键
            char c3 = '\t';
            
            //回车键
            char c4 = '\n';
                    
            /*
             * System.out.println()  打印后会自定换行
             * System.out.print()    打印后不会自定换行
             */
            System.out.print("aaa");
            System.out.print(c4);
            System.out.print("bbb");
            
        }

在计算机中,任何内容的保存都是0和1,一个0或者一个1就表示一位,保存内容的最小单位是8位。

8位成为一个字节。

在表示整数时,我们使用的是二进制,第一位是符号位,0:正数 1:负数

byte 1个字节 8位 1024b = 1kb 1024kb = 1mb 1024mb=1gb 1024gb=1tb 1024tb = 1pb

0111 1111

short 2个字节 16位

int 4个字节 32位

long 8个字节 64位

234 = 4*10^0+3*10^1+2*10^2
二进制转化为10进制
0111 1111 = 2^1+2^1+...+2^6= 2^7-1    127   byte最大值
​
0000 0000    +0
1000 0000    -0            = -2^7   -128   byte最小值

 

1.2 引用数据类型

除了基本类型都是引用数据类型

1.2.1 String

有些值是由多个字符组长的,无法使用基本类型定义

此时可以定义String类型变量接受这类的值

package com.qfedu;
​
public class Demo05 {
​
    public static void main(String[] args) {
    //  char className = 'hfjava2203班';  //内容由11个字符组成的
        
        /*
         * 字符串 : String   可以被赋值  由多个字符组成的内容
         * 
         * String 变量名 = "字符串";
         */
        
        String className = "java2203班";
        
        String  name = "xsg";
        
        String school = "安徽大学";
        
        System.out.println(school);
        
        int age = 18;
        System.out.println(age);    //这里的age表示的变量
        System.out.println("age");  //age 表示是一个字符串
        
        //定义家乡,  你喜欢的女明星   你的目标
        
          String hometown="安徽";
         String myFavoriter = "吴宣仪";
         String target= "一个亿";
         
        
    }
}
​

二. 运算

2.1 算数运算

加减乘除余

整数类型数据运算得到结果还是整数

整数相除结果为整数

小数类型数据运算的到的结果是小数

余:没有除尽余下的数,或者除尽余数为0, 余下的数一定被除数小

package com.qf;
​
public class Demo01 {
​
    /*
     * 算数运算
     */
    public static void main(String[] args) {
        int a = 5;
        int b = 2;
        
        int r1 = a+b;
        int r2 = a-b;
        int r3 = a*b;
        
        //整数运算的结果还是整数,自动把小数去除
        int r4 = a/b;
        System.out.println(r4);
        
        double d1 = 5;   //5首先看做int的整数
        double d2 = 2;
        double r5 = d1/d2;
                
        System.out.println(r5);
        
        int r6 = a%b;  //1   除尽或者除不尽余下的数    余下的数一定被除数小
    }
        
    
}

String 和基本类型相加+,

如果 “+”两边出现字符串类型的数据,那么加号就不再是算数运算符,而是变成连接符

结果的数据类型一定是字符串类型

package com.qf;
​
public class Demo01_2 {
​
    public static void main(String[] args) {
        /*
         * String 和基本类型相加+
         * 如果 “+”两边出现字符串类型的数据,那么加号就不再是算数运算符,而是变成连接符
         * 结果的数据类型一定是字符串类型
         */
        String str = "hello";
        String r6 = str + d; // hello3.0
        System.out.println(r6);
        
        //可以添加小括号,提高计算的优先级
        String r7 = 1+2+3+"heheda"+1+2+(3+4);  //程序是从上往下,从左往右执行的
        System.out.println(r7);  //6heheda127
        
        
        /*
         * 1. 定义一个圆半径,求该圆的面积
         * 2. 定义一个长方型,长,宽,计算长方型的边长,面积
         * 3. 获取数字48762每位的值,并打印,如个数是,十位是,百位是....
         */
        double pi=3.14;
        int r= 5;
        double s=pi*r*r;
        System.out.println("圆的面积是"+s);
        
        
        int l=5;
        int h=4;
        int s1=l*h;
        int c=2*(l+h);
        System.out.println("长方形的周长是"+c);
        System.out.println("长方形的面积是"+s1);
        
        int num=48762;
        int g=num%10;
        int j=num/10%10;
        int b1=num/100%10;
        int q=num/1000%10;
        int w=num/10000;
        System.out.println("个位数是"+g);
        System.out.println("十位数是"+j);
        System.out.println("百位数是"+b1);
        System.out.println("千位数是"+q);
        System.out.println("万位数是"+w);
        
​
        
    }
}
​

byte, short 类型 进行运算 得到结果的数据类型为int

int long float double 的数据类型运算,运算结果是变量数据类型范围大的那种数据类型

package com.qf;
​
public class Demo01_2 {
​
    public static void main(String[] args) {
        /*
         * byte, short 类型 进行运算 得到结果的数据类型为int
         * 
         * int long float double 的数据类型运算,运算结果是变量数据类型范围大的那种数据类型
         */
        byte b = 111;
        byte b2 = 21;
        int r = b+b2;
        
        
        
        short s = 22;
        short s2 = 33;
        int r2 = s+s2;
        
        int r22 = r+r2;
        
        int i = 400000000;
        long l = 2000000000;
        long r3 = i+l;
        
        float f = 5f;
        
        float r4 = f+r3;
        
        double d = 3.0;
        
        double r5 = d+r4;
        
    }
}
​

2.2 赋值运算

自增,自减,自除,自余

package com.qf;
​
public class Demo02 {
​
    /*
     *  =  赋值符  把左边的值赋值给右边的变量
     * 
     * +=  自增
     * -=  自减
     * *=  自乘
     * /=  自除
     * %/  自余
     */
    public static void main(String[] args) {
        int a = 5;
        int b = a+3;
        
        a = a+3;    // a在原来的基础自增3
        
        a +=3;  
        
        a -= 3;     //自减   8
        
        a = a*2;    //自乘  16
        
        a = a%3;    // 1
        
        System.out.println(a);
        
        int a = 4;
        
        a = a+1;
        
        a += 1;   //6
        
        /*
         * 自增1
         * 
         * 变量++;   ++变量;    自增1
         * 
         * 变量++;   先对变量进行操作,然后再自增1
         * ++变量;   先自增1,然后再进行操作
         *      操作:就是对变量的使用 赋值,打印
         * 
         * 
         */
        a++;
        
        ++a;         //8
        
        System.out.println(a);
        
        int r = a++;  //
        
        System.out.println("r="+r+",a="+a);
        
        System.out.println(a++);  //9
        System.out.println(++a);  //11
        
        
        /*
         * 变量--;  --变量
         */
        int b = 6;
        b = b-1;
        b -=1;
        b--;
        --b;
        
        System.out.println(b);
        
        
        
        int c = 5; //6
        
        int r3 = c++ + 3 - --c + c++ - --c;
        System.out.println(r3);
        
        //5 + 3-5 +5-5     
        
    }
}

2.3 关系运算

大于,小于,大于等于,小于等于,等于(==),不等于(!=) 会得到一个boolean类型的数据

  • 成立 返回true

  • 不成立 返回false

==

!=

package com.qf;
​
public class Demo03 {
​
    public static void main(String[] args) {
        int a=5 , b=3;
        
        boolean r1 = a>b;  //true
        
        boolean r2 = a == b; // false
        
        boolean r3 = a != b; // true
        
        
        /*
         * 算数运算符   > 关系运算符  > 赋值运算符
         */
        boolean r4 = a == b+2; // true
        System.out.println(r4);
        
        boolean r5 = --a == ++b; // 
        System.out.println(r5);
    }
}

2.4 逻辑运算

且或非:表示多个关系判断之间的关系

且:&& 必须两边同时成立,结果为true, 其他全部为false

或:|| 必须两边同时不成立,结果为false, 其他全部为true

非:! 和先有的结果,值相反

package com.qf;
​
public class Demo04 {
​
    public static void main(String[] args) {
        /*
         * 逻辑运算符  且  或  非      结果boolean类型
         * 
         * 且   &&   必须两边同时成立,结果为true, 其他全部为false
         * 或   ||   必须两边同时不成立,结果为false, 其他全部为true
         * 非   !    和先有的结果,值相反
         */
        
        int a = 4, b=5, c=6;
        
        //a是不是最大的
        boolean r1 = a>b &&  a>c;   //false
        
        //a是不是最小的
        boolean r2 = a>b ||  a>c;   //false
        
        //a是不是 不是  最大的
        boolean r3 = !r1;   //r3和r1的结果正好相反
        
    }
}

2.5 三元运算

通过现有的变量,获取我们想要获取的值。

数据类型 变量名 = 逻辑表达式?值1:值2;
package com.qf;
​
public class Demo05 {
​
    public static void main(String[] args) {
        
        /*
         * 三目/元表达式   
         * 
         * 数据类型  变量 = 逻辑表达式?值1:值2;
         */
        int score = 88;
        
        String r = score>=60?"及格":"不及格";
        
        int gender = 0; // 0:女  1:男
        
        char c = gender == 0? '女':'男';
        
        System.out.println(c);
    }
    
}

三. 从控制台获取值

  • 创建扫描器

    Scanner scan = new Scanner(System.in);
    • 引入扫描器类路径

      import java.util.Scanner;
  • 提示用户输入信息

    System.out.println("请输入您的姓名:");
  • 对控制台进行扫描获取值

    //扫描控制台获取字符串
    String str = scan.next();
            
    //扫描并获取整数
    int age = scan.nextInt();
            
    //扫描并获取小数
    double price = scan.nextDouble();
package com.qf;
​
//引入这个扫描器
import java.util.Scanner;
​
public class Demo06 {
​
    public static void main(String[] args) {
        //定义一个扫描器
        Scanner scan = new Scanner(System.in);
        
        //提示用户要输入信息
        System.out.println("请输入您的姓名:");
        
        //扫描控制台获取字符串
        String str = scan.next();
        
        System.out.println("你输入的姓名:"+str);
        
        //提示用户输入
        System.out.println("请输入您的年龄:");
        
        //扫描并获取整数
        int age = scan.nextInt();
        
        System.out.println("你输入的年龄:"+age);
        
        
        //提示用户输入
        System.out.println("请输入您的价格:");
        //扫描并获取小数
        double price = scan.nextDouble();
        
        System.out.println("你输入的及格:"+price);
    }
    
}


网站公告

今日签到

点亮在社区的每一天
去签到