• Java零基础系列教程01变量,类型,运算符,表达式


    配套视频教程

    本文B站配套视频教程

    image.png

    常量

    (1)在程序执行的过程中,其值不发生改变的量
    (2)字面值常量
    A:字符串常量 "hello"
    B:整数常量 12,23
    C:小数常量 12.345
    D:字符常量 'a','A','0'
    E:布尔常量 true,false
    F:空常量 null(后面讲)

    /*
        常量:
            在程序执行过程中,其值不发生改变的量。
            
        分类:
            A:字面值常量
            B:自定义常量(后面讲)
            
        字面值常量
            A:字符串常量    用双引号括起来的内容。
                举例:"hello","world","HelloWorld"
            B:整数常量    所有的整数
                举例:100,200
            C:小数常量    所有的小数
                举例:10.23,110.11
            D:字符常量    用单引号括起来的内容
                举例:'a','A','0'
                错误的:'ab'
            E:布尔常量    比较特殊
                举例:true,false
            F:空常量    后面讲
                举例:null
    */
    class ConstantDemo {
        public static void main(String[] args) {
            //字符串常量的输出
            System.out.println("hello");
            
            //整数常量的输出
            System.out.println(100);
            
            //小数常量的输出
            System.out.println(100.10);
            
            //字符常量的输出
            System.out.println('a');
            System.out.println('A');
            System.out.println('0');
            //这个是有问题的,字符常量有单引号,字符串常量用双引号
            //System.out.println('ab');
            
            //布尔常量的输出
            System.out.println(true);
            System.out.println(false);
        }
    }
    

    变量的三要素

    类型,变量名,保存的值

    基本数据类型

    1. 数值
    • 整数 byte,short,int,long
      25,-987, 0
    • 小数 float,double
      5.23,3.14
    1. 字符串
    • 字符串 String
      "你好","中国的首都"
    • 字符 char
      'a', '的'
    1. 布尔型
      boolean

    使用一个变量的步骤

    1. 定义一个变量
      数据类型 变量名;
      int money;

    2.给变量赋值
    变量名 = 数值;
    money = 1000 ;

    第一步和第二步可以合并
    数据类型 变量名=数值;
    int money = 1000;

    3.使用这个变量
    System.out.println(money );

        int age;//定义一个变量
        age = 34; //给变量赋值
        System.out.println(age); //在屏幕上输出变量的值
        
        String name="zhangsan";//定义一个变量,并且马上给其赋值
        System.out.println(name); //在屏幕上输出变量的值
    

    定义几个变量

    手机的品牌brand是华为,价格(price)2500,重量(weight)0.125千克,
    颜色(color) 红

    String brand = "华为";
    int price = 2500;
    double weight = 0.125;
    char color = '红';
    
       System.out.println("手机品牌:" + brand);
      System.out.println("手机价格:" + price);
    

    image.png

    获取用户输入

    使用Scanner类

    Scanner sc = new Scanner(System.in);
    
    
    
    /*
     * Scanner:用于接收键盘录入数据。
     * 
     * 前面的时候:
     *         A:导包
     *         B:创建对象
     *         C:调用方法
     * 
     */
    import java.util.Scanner;
    
    public class ScannerDemo {
        public static void main(String[] args) {
            // 创建对象
            Scanner sc = new Scanner(System.in);
    
            int x = sc.nextInt();
            
            System.out.println("x:" + x);
        }
    }
    
            Scanner scanner = new Scanner(System.in);//定义一个从屏幕获得输入信息的变量scanner
    
            System.out.println("请输入您的年龄");
            int age = scanner.nextInt();//获得用户从屏幕输入的一个整数,有一个阻塞的副作用,通俗点说,就是程序卡在这里了
    
            System.out.println("您的年龄是" + age);
            System.out.println("请输入您的姓名");
            String name = scanner.next();//获得用户从屏幕输入的一个字符串,有一个阻塞的副作用,通俗点说,就是程序卡在这里了
    
            System.out.println("欢迎您" + name);
    

    Scanner类的hasNextInt()和nextInt()方法

    
    import java.util.Scanner;
    
    /*
     * 基本格式:
     *         public boolean hasNextXxx():判断是否是某种类型的元素
     *         public Xxx nextXxx():获取该元素
     * 
     * 举例:用int类型的方法举例
     *         public boolean hasNextInt()
     *         public int nextInt()
     * 
     * 注意:
     *         InputMismatchException:输入的和你想要的不匹配
     */
    public class ScannerDemo {
        public static void main(String[] args) {
            // 创建对象
            Scanner sc = new Scanner(System.in);
    
            // 获取数据
            if (sc.hasNextInt()) {
                int x = sc.nextInt();
                System.out.println("x:" + x);
            } else {
                System.out.println("你输入的数据有误");
            }
        }
    }
    

    Scanner类中的nextLine()产生的换行符问题

    import java.util.Scanner;
    
    /*
     * 常用的两个方法:
     *         public int nextInt():获取一个int类型的值
     *         public String nextLine():获取一个String类型的值
     * 
     * 出现问题了:
     *         先获取一个数值,在获取一个字符串,会出现问题。
    
     * 如何解决呢?
     *         A:先获取一个数值后,在创建一个新的键盘录入对象获取字符串。
     *         B:把所有的数据都先按照字符串获取,然后要什么,你就对应的转换为什么。
     */
    public class ScannerDemo {
        public static void main(String[] args) {
            // 创建对象
            Scanner sc = new Scanner(System.in);
    
            // 获取两个int类型的值
            // int a = sc.nextInt();
            // int b = sc.nextInt();
            // System.out.println("a:" + a + ",b:" + b);
            // System.out.println("-------------------");
    
            // 获取两个String类型的值
            // String s1 = sc.nextLine();
            // String s2 = sc.nextLine();
            // System.out.println("s1:" + s1 + ",s2:" + s2);
            // System.out.println("-------------------");
    
            // 先获取一个字符串,在获取一个int值
            // String s1 = sc.nextLine();
            // int b = sc.nextInt();
            // System.out.println("s1:" + s1 + ",b:" + b);
            // System.out.println("-------------------");
    
            // 先获取一个int值,在获取一个字符串,这里会出问题
            // int a = sc.nextInt();
            // String s2 = sc.nextLine();
            // System.out.println("a:" + a + ",s2:" + s2);
            // System.out.println("-------------------");
    
            int a = sc.nextInt();
            Scanner sc2 = new Scanner(System.in);
            String s = sc2.nextLine();
            System.out.println("a:" + a + ",s:" + s);
        }
    }
    

    运算符

    1. 赋值运算符
      =

    员王浩的Java成绩是80分,学员张萌的Java成绩与王浩的相同,输出张萌的成绩

    int wangScore = 80;    //王浩成绩
    int zhangScore;        //张萌成绩
    zhangScore = wangScore; 
    System.out.println(“张萌成绩是" +zhangScore);
    
    

    2.算数运算符
    +,-,*,/,%

            System.out.println(1600%5);//0-4
            System.out.println(3%5);//3
            System.out.println(3%2);//1
            System.out.println(21%5);//1
            System.out.println(13%4);//1
    //        System.out.println(m%n);//0----n-1
            System.out.println(23%7);//2
            System.out.println(25%7);//4
    

    一个问题

    用户在屏幕上输入一个天数,程序回答出是几周零几天?

       //  用户在屏幕上输入一个天数,程序回答出是几周零几天?
            Scanner scanner = new Scanner(System.in);
            System.out.println("请输入天数");
            //获得用户输入的天数dayCount
            int dayCount = scanner.nextInt();
            System.out.println(dayCount+"天是"+ dayCount/7 + "周零" +  dayCount%7 + "天");
    

    关系运算符

    比较高低、大小、长短等
    张三的考试成绩是否比李四高
    大象是否比乌龟更长寿
    篮球跟地球一样大吗

    ,<
    ==,!=
    =,<=
    boolean (布尔)类型
    boolean类型的值:
    真:true
    假:false

    表达式(3+40%6)>(9/2*3)的结果是什么?

    false

    从控制台输入张三同学的成绩,与李四的成绩(80分)比较,输出“张三的成绩比李四的成绩高吗?” 的判断结果

    image.png

    int liSi = 80;          //学员李四成绩
    boolean isBig ;    
            
    Scanner input = new Scanner(System.in);   
    System.out.print("输入学员张三成绩: ");       
    int zhangSan =  input.nextInt();                     //输入张三的成绩 
            
    isBig = zhangSan > liSi ; 
    System.out.println( "张三成绩比李四高吗 ? "+isBig );    //输出比较结果
    
    

    表达式

    y = x-9+(x +90);

    练习

    商场推出幸运抽奖活动
    抽奖规则:
    顾客的四位会员卡号的
    各位数字之和大于20,
    则为幸运顾客。

    image.png

    类型转换

    自动类型转换

    某班第一次Java考试平均分81.29,第二次比第一次多2分,计算第二次考试平均分?

    double firstAvg = 81.29;  //第一次平均分
      double secondAvg;         //第二次平均分
      int rise = 2;
    
      secondAvg = firstAvg + rise;
            
      System.out.println("第二次平均分是:"  + secondAvg);
    
    

    规则1:如果一个操作数为double型,则整个表达式可提升为double型

    规则2:满足自动类型转换的条件
    两种类型要兼容:
    数值类型(整型和浮点型)互相兼容
    目标类型大于源类型:
    例如:double 型大于 int 型

    强制类型转换

    (类型名)表达式

    int  b  = (int)10.2;
    double a = 10;
    int c = (int)a;
    

    去年Apple笔记本所占市场份额是20,今年增长的市场份额是9.8,求今年所占份额?

    int before = 20;     //apple笔记本市场份额
    double rise = 9.8;     //增长的份额
    
    int now = before+ (int)rise;      //现在的份额
    
    

    当强制转换时,精度有损失

  • 相关阅读:
    ioctl函数用法小记
    scanf函数用法小记
    printf函数用法小记
    REDIS
    lspci 虚拟机网卡对应关系
    vmware安装ubuntu " Intel VT-x 处于禁用状态"
    win10远程桌面配置
    Win10如何彻底禁用小娜?彻底禁用小娜的方法
    为什么Windows7打开项目的方式是灰的不能修改
    以下suse11.3x64可以安装pycrypto-2.6.1
  • 原文地址:https://www.cnblogs.com/songboriceboy/p/13757641.html
Copyright © 2020-2023  润新知