美文网首页
java变量基础知识

java变量基础知识

作者: lkee6760 | 来源:发表于2016-12-08 23:05 被阅读57次

    一、变量基础知识

    1、练习所有类型变量的定义,打印每种类型变量的值

    A.数据类型分类

    四类 数据类型 字节数 数据表示范围
    整型 byte 1 -128~127
    整型 short 2 -32768~32767
    整型 int(常用) 4 -21亿21亿(-21474836482147483648)
    整型 long 8 -263~263
    浮点型 float 4 3.403E38~3.403E38
    浮点型 double 8 -1.798E308~1.798E308
    字符型 char 2 表示一个字符,如‘a’、‘1’、’家‘
    布尔型 boolean 1 只有两个值true与false

    B.定义各种类型变量并打印输出这些值

    • 源码
    class Data {
        public static void main(String[] args) {
            byte b = 0b10; //定义byte类型变量
            System.out.println(b);
    
            short s = 1;//定义short类型变量
            System.out.println(s);
    
            int i = 1;//定义int类型变量
            System.out.println(i);
    
            long l = 0xA;//定义long类型变量
            System.out.println(l);
    
            float f = 1.111e11F;//定义float类型变量
            System.out.println(f);
    
            double d = 1.1;//定义double类型变量
            System.out.println(d);
    
            char c = '义';//定义char类型变量
            System.out.println(c);
    
            boolean boo = true;//定义boolean类型变量
            System.out.println(boo);
    
            String str = "中国";//定义字符串
            System.out.println(str);
    
            System.out.println(b + s + i + l + f + d + c + str);
            }
    }
    
    • 输出结果:
      47513084.png

    2、任选两种类型,写一个自动类型提升和强制类型小案例

    A.自动类型提升

    • 取值范围小的类型,自动转换取值范围大的类型
    • boolean类型不参与转换

    byte-->short-->int-->long-->float-->double
    char-->int

    • 例子:
    public class DataConvert {
        public static void main(String[] args) {
            //定义double类型的变量
            double d = 1000;//出现类型自动转换,把int转换成double
            System.out.println(d);
    
            int i = 100;
            double d2 = i;//出现类型自动转换,int自动转成double
            System.out.println(d2);
    
            byte b = 10;
            int j = b;//自动类型转换,byte自动转换int
            System.out.println(j);
        }
    }
    
    • 输出结果:
      47638540.png

    B.强制转换

    • 数据类型范围大的转换成数据类型范围小的;
    • 没有特殊要求,不得强制转换;
    • 数据类型的强制转换公式
      被转换后的数据类型 变量名 = (被转换后的数据类型)要转换的数据
    • 例子:
    class DataConvert_1 {
        public static void main(String[] args) {
            //double 浮点,转成整数int
            double d = 3.1415926;
            int i = (int)(d);
            System.out.println(i);
        }
    }
    
    • 输出结果:
      47690238.png

    3、运算符:

    A.算术运算符(+ - * / % ++)

    运算符 原酸规则 范例 结果
    + 正号 +3 3
    + 2+3 5
    + 连接字符串 "中" + "国" "中国"
    - 负号 int a = 3 ; -a -3
    - 3-1 2
    * 2 * 3 6
    / 5 / 2 2
    % 取模 5 % 2 1
    ++ 自增 int a = 1; a ++/++ a 2
    -- 自减 int b = 3; a--/--a 2
    • 例子:
    public class Operator_1 {
        public static void main(String[] args) {
            //+ 连接作用,将一个字符串和其他数据连接
            //遇到字符串,+意思为连接符号
            //任何类型只要和字符串 + ,所有的数据都变成字符串
            System.out.println("5+5 = " + 5 + 5);
    
            int i = 9;
            int j = 100;
            
            int add = i + j;//加法运算
            System.out.println(add);
            
            int sub = i - j;//减法运算
            System.out.println (sub);
            
            int mul = i * j;//乘法运算
            System.out.println(mul);
    
            double div = (double)i / j;//除法运算
            System.out.println(div);
            
            int mod = i % j;//取模运算
            System.out.println(rem);
            
            //自增运算 ++
            int a = 1;
            int b = 1;
            int c = 1;
            c++;
            int d = 1;
            ++d;
            System.out.println(a++);
            System.out.println(++b);
            System.out.println(c);
            System.out.println(d);
        }
    }
    
    • 输出结果:
      47764058.png

    B.赋值运算符(=,+=,/=,*=,%=)

    运算符 运算规则 范例 结果
    = 赋值 int a = 2 2
    += 加后赋值 int a = 2; a+=2 4
    -= 减后赋值 int a = 2; a -=2 0
    *= 乘后赋值 int a = 2; a *= 2 4
    /= 整除后赋值 int a = 2;a /= 2 1
    %= 取模后赋值 int a = 2; a %= 2 0
    • 例子:
    //赋值运算
    class Demo_1 {
        public static void main(String[] args) {
            int i=2,j=2,k=2,m=2,n=2;
    
            i += 2;//加后赋值
            System.out.println(i);
    
            j -= 2;//减后赋值
            System.out.println(j);
    
            k *= 2;//乘后赋值
            System.out.println(k);
    
            m /= 2;//整除后赋值
            System.out.println(m);
    
            n %= 2;//去模后赋值
            System.out.println(n);
        }
    }
    
    • 运算结果
      47820905.png

    C.比较运算符(>,<,>=,<=,==,!=)

    运算符 运算规则 范例 结果
    == 相等于 4 == 3 false
    != 不等于 4 != 3 true
    < 小于 4 < 3 false
    > 大于 4 > 3 true
    <= 小于等于 4 <= 3 false
    >= 大于等于 4 >= 3 true
    • 例子:
    //比较运算
    class Demo_2 {
        public static void main(String[] args) {
            int i = 10;
            int j = 12;
    
            boolean boo1 = i == j;
            System.out.println(boo1);
    
            boolean boo2 = i != j;
            System.out.println(boo2);
    
            boolean boo3 = i < j;
            System.out.println(boo3);
    
            boolean boo4 = i > j;
            System.out.println(boo4);
    
            boolean boo5 = i <= j;
            System.out.println(boo5);
    
            boolean boo6 = i >= j;
            System.out.println(boo6);
        }
    }
    
    • 输出结果:
      47881215.png

    D.逻辑运算符(&&,||,!)

    1972055.png
    • 例子:
    class Operator_3 {
        public static void main(String[] args) {
            System.out.println(true & true);
            System.out.println(false & true);
            System.out.println(false & false);
            System.out.println(true | true);
            System.out.println(true | false);
            System.out.println(false | false);
            System.out.println(true ^ false);
            System.out.println(true ^ true);
            System.out.println(false ^ false);
            System.out.println(false && true);
            System.out.println(true || false);
            System.out.println(!false);
            System.out.println(!true);
        }
    }
    
    • 输出结果:
      47937547.png

    4、练习商品库存案例

    • 源码:
    /*
    实现商品库存清单案例
    分析步骤:
        1.实现表头,是固定数据,直接写输出语句;
        2.表格中间,商品数据采用变量形式,定义变量,找对数据类型,输出所有变量
        3.表格尾巴,一部分数据固定,另一部分,商品数据进行数学计算,运算符
    */
    class Shop {
        public static void main(String[] args) {
            //输出表头固定数据
            System.out.println();
            System.out.println("---------------------------商场清单---------------------------");
            System.out.println();
            System.out.println("品牌型号        尺寸      价格      库存数");
                   //定义表格中的数据变量
            //品牌型号 String类型,尺寸/价格 double类型,库存 int类型
                    //定义MacbookAir的属性
            String macBrand = "MacBookAir";
            double macSize = 13.3;
            double macPrice = 6988.88;
            int macCount = 5;
    
                    //定义ThinkPadT450的属性
            String lenovoBrand = "ThinkPadT450";
            double lenovoSize = 14.0;
            double lenovoPrice = 5999.99;
            int lenovoCount = 10;
    
                    //定义ASUS-FL5800的属性
            String asusBrand = "ASUS-FL5800";
            double asusSize = 15.6;
            double asusPrice = 4999.5;
            int asusCount = 18;
    
                    //输出表格内容
            System.out.println(macBrand +"      " + macSize + "     " + macPrice + "        " + macCount);
            System.out.println(lenovoBrand +"       " + lenovoSize + "      " + lenovoPrice + "     " + lenovoCount);
            System.out.println(asusBrand +"     " + asusSize + "        " + asusPrice + "       " + asusCount);
            System.out.println("--------------------------------------------------------------");
                    //表尾内容
            System.out.println("总库存数:"+(macCount + lenovoCount + asusCount));
            System.out.println("库存商品总金额:"+(macPrice * macCount + lenovoPrice * lenovoCount + asusPrice * asusCount));
        }
    }
    
    • 输出结果:**


      47999838.png

    二、课后作业:

    1.数据类型转换:

    A.第一题

    byte b1=3,b2=4,b;
    b=b1+b2;
    b=3+4;
    

    哪句是编译失败的呢?为什么呢?

    • 答:
      第2句编译错误,因为两个byte类型的变量相加很可能超出byte的取值范围,所以编译会错误;类似的情况还有shortcha类型。

    B.第二题

    byte by = 130;有没有问题?有问题如何解决?结果是多少呢?

    • 答:
    1. 130超出byte的取值范围(-128~127),编译错误;
    2. 解决办法:byte by = (byte)130
    3. 结果:数据会损失精度,结果为-126

    C.第三题:

    byte b = 10;
    b = b + 1;
    b+=1;
    

    有没有问题?为什么呢?

    • 答:
      1. 第2行代码会编译错误;
      2. 因为1默认为int类型,(b+1)会自动提升为int类型,无法把int类型的数字赋值给byte类型的变量;
      3. 解决办法 b = (byte)(b + 1);

    2.分析以下需求,并用代码实现

    • 已知三位数173,打印百位上的数字(线索利用对100 进行 / 运算获得百位上的数字);分别打印十位上和个位上的数字(线索:利用对10或者100进行/或者%运算获取十位和个位上的数字)
    • 源码
    class Demo_3 {
        public static void main(String[] args) {
            int i = 173;
            int m = i / 100;//定义百位数为m
            System.out.println(m);
    
            int n = i % 100;
            int k = n / 10;//定义十位数为k
            int f = n % 10;//定义个位上的数为f
            System.out.println(k);
            System.out.println(f);
          }
    }
    
    • 输出结果
      48417234.png

    3.看程序说结果:

    public class Test1 {
        public static void main(String[] args) {
            int x = 4;
            int y = (--x)+(x--)+(x*10);
            System.out.println("x = " + x + ",y = " + y);
        }
    }
    
    • 输出结果:
      x = 2 , y = 26

    相关文章

      网友评论

          本文标题:java变量基础知识

          本文链接:https://www.haomeiwen.com/subject/iptemttx.html