第二章 变量、数据类型和运算符

1 变量和数据类型

1.1 变量

  • 电脑使用内存来记忆计算时所使用的数据
  • 内存如何存储数据:内存像旅馆一样
    • 开房间(单人间、双人间、总统套间);告诉内存在存放何种类型的数据
    • 入住;存入数据

          

      • 使用内存做什么:存放数据

      • 怎么找到存入的数据?
        • 根据内在地址可以找到内存空间的位置,但内存地址不好记
        • 通过变量名可以简单快速地找到它存储的数据

      1.2 数据类型

      1.2.1 Java数据

         那么Java中有哪些常用的数据类型呢?

      正如前面所讲到的“根据数据的类型为其在内存中分配一块空间”,不同的数据在存储进所需要的空间各不相同。例如,int:4个字节;double:8个字节。

      1.3 变量的声明和使用

      1.3.1 数据如何存取

      • 根据数据的类型在内存中分配一个合适的“房间”,并给它命名,即“变量名”
      • 将数据存储到这个“房间”中;
      • 从“房间”中取出数据使用,可以通过变量名来获得。

      1.3.2 语法

      • 声明
      1.  数据类型 变量名
      • 赋值
      1.  变量名 = 

      赋值和声明合二为一

      1.  数据类型 变量名 = 

      1.3.3 调用变量

      1.  int money =1000;
      2.  System.out.println(money);

      注:

      • 变量都必须声明和赋值后才能使用

      1.3.4 实例

      l  输出Java课考试最高分:98.5

      l  输出最高分学员姓名:张三

      l  输出最高分学员性别:男

      1.  public class TestType {
      2.         public static void main(String[ ] args) {
      3.                double score = 98.5;    
      4.                String name = "张三";
      5.                char sex = '';
      6.      
      7.                 System.out.println("本次考试成绩最高分: " + score);
      8.          System.out.println("最高分得主: " + name);
      9.          System.out.println("性别: " + sex);
      10.        }
      11. }

      1.4 变量命名的规则

      变量命名规范:

      • 简短且能清楚地表明变量的作用(如果英文表达不了,用拼音也行),通常第一个单词的首字母小写,其后单词的首字母大写。例如:myScore 
      • Java对字母大小写敏感,即pricePrice是二个变量
      • 不能使用Java关键字作为变量名,Java常用关键字有:public class int boolean void char double package print static...

      1.5 常见错误

      1.5.1 变量未赋值先使用

      1.5.2 使用非法的变量名

      1.5.3 变量不能重名

      1.  String name="zhangsan";
      2.  int name=12;

      2 运算符

      2.1 赋值运算符

      • String name="zhangsan";  //常量
      • int a = (b+c)-(d+3);     //表达式

      2.2 算术运算符

      2.2.1 常用算术运算符

      运算符

      说明

      举例

      +

      -

      *

      /

      5/3 = 1

      %

      取余

      2.2.2 除法运算

      1.  public static void main(String[] args) {
      2.          int a = 5/3;
      3.          double b = 5/3;
      4.          System.out.println("a = "+a);
      5.          System.out.println("b = "+b);
      6.          System.out.println(5.0/3);
      7.          
      8.          double c = 5;
      9.          int d = 3;
      10.         System.out.println(c/d);
      11.  }

      2.2.3 示例3:从控制台输入学员王浩3门课程成绩,编写程序实现

      • Java课和SQL课的分数之差
      • 3门课的平均分

      1.  public class Example03 {
      2.   public static void main(String[] args) {
      3.          Scanner input = new Scanner(System.in);
      4.          System.out.println("STB的成绩是:");
      5.          //输入一个int类型的值,用stb变量来接收
      6.          int stb = input.nextInt();
      7.          
      8.          System.out.println("Java的成绩是:");
      9.          int java = input.nextInt();
      10.         
      11.         System.out.println("SQL的成绩是:");
      12.         int sql = input.nextInt();
      13.         
      14.         int D_Value ;//差值
      15.         int avg;      //平均值
      16.         System.out.println("------------------------------");
      17.         System.out.println("STB\tJAVA\tSQL");
      18.         System.out.println(stb+"\t"+java+"\t"+sql);
      19.         System.out.println("------------------------------");
      20.         D_Value = java-sql;
      21.         System.out.println("JavaSQL的成绩差:"+D_Value);
      22.         avg = (stb+java+sql)/3;
      23.         System.out.println("3门课的平均分是:"+avg);
      24.         
      25.  }
      26. }

      注:

      • Scaner:java.util
      • input.nextInt();

      2.2.4 自加、自减运算

      • ++num:先将num = num+1,然后再使用
      • num++:先使用,然后num=num+1
      1.  public static void main(String[] args) {
      2.          int num = 11;
      3.          int a = 2+num++;
      4.          System.out.println(a);
      5.          System.out.println("num is "+num);
      6.          num = 11;
      7.          a = 2+(++num);
      8.          System.out.println(a);
      9.          System.out.println("num is "+num);
      10.  }

      :

          num++  相当于 num=num+1

      自减:原理同上

      2.2.5 练习

      • 练习一:根据天数(46)计算周数和剩余的天数
      1. int days = 46; // 天数
      2. int week = days / 7; // 星期
      3. nt leftDay = days % 7;// 剩余的天数
      • 练习二:已知圆的半径radius= 1.5,求其面积
      1. double pi = 3.14159; // 圆周率
      2. double radius = 1.5; // 半径
      3. double area = pi * radius * radius; // 计算圆面积
      2.3 数据类型的转换

      2.3.1 为什么需要数据类型的转换

          不同的数据类型进行运算的时候,运算结果是什么数据类型

      1.  /**
      2.    * 为什么要数据类型转换
      3.    */
      4.   public static void whyConvert(){
      5.          double avg = 81.29;
      6.          int addNum = 2;
      7.          System.out.println(avg+addNum);
      8.   }

      2.3.2 如何进行数据类型转换

      • 自动数据类型的转换
        • 规则1:如果一个操作数为double类型,则整个表达式可提升为double类型
        • 规则2:满足自动类型转换的条件,目标类型大于源类型
      • 强制类型转换:(数据类型)表达式

      2.5 关系运算符

      2.5.1 Java关系运算符

      关系运算符

      说明

      举例

      > 

      < 

      >=

      <=

      ==

      !=

      注:

      • ===的区别
      • 关系运算符的运算结果是boolean类型

      2.5.2 实例:

          从控制台输入张三同学的成绩,与李四的成绩(80分)比较,输出“张三的成绩比李四的成绩高吗?”的判断结果
      1.  /**
      2.   * 从控制台输入张三同学的成绩,与李四成绩进行比较,并输出比较结果
      3.   * @author wangshaohua
      4.   *
      5.   */
      6.  public class Example06 {
      7.   public static void main(String[] args) {
      8.          int liSi = 80;
      9.          Boolean isBig;
      10.         Scanner input = new Scanner(System.in);
      11.         System.out.println("请输入学员叫张三的成绩:");
      12.         int zhangSan = input.nextInt();
      13.         isBig = zhangSan>liSi;
      14.         System.out.println("张三成绩比李四高吗?"+isBig);
      15.  }
      16. }

      2.6 运算符的优先级 

      • 最高的优先级:小括号,即( )
      • 最低的优先级:赋值运算符,即=
      • 优先级顺序:算术运算符>关系运算符>逻辑运算
      • 当运算符比较多,无法确定运算符执行顺序时,可以使用小括号控制一下顺序

      3、本章总结

      • 变量的概念和使用
      • Java中常用的数据类型:int、double、char和String
      • 数据类型转换包括自动类型转换和强制类型转换
      • boolean类型表示真假,有true和false两个值
      • 运算符
        • 赋值运算符(=)
        • 算术运算符(+、 – 、*、/、%)
        • 关系运算符(>、<、>=、<=、 ==、 !=)
      • Scanner类可以从键盘获取输入的信息

      4 训练 

      4.1 模拟幸运抽奖

      4.1.1 需求说明

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

      4.1.2 效果

      4.1.3 实现思路

      • 接收输入的会员卡号
      • 分解并获得各位数字
          1. int gewei = custNo % 10;
          2. int shiwei = custNo / 10 % 10;
          3. int baiwei = custNo / 100 % 10;
          4. int qianwei = custNo / 1000;

      • 计算各位数字之和

      4.2 判断折扣价格

      4.2.1 需求:

          用户从键盘接收商品折扣,并判断商品享受此折扣后价格是否低于100

      4.2.2 效果:

      4.2.3 实现思路

      • 声明变量存储商品价格信息
      • 从键盘接收折扣,并保存
      •  计算商品享受折扣后的价格
      •  输出商品折扣后价是否低于100
      关注我们


      捐赠我们

          良师益友工作室一直在致力于帮助编程爱好更加快速方便地学习编程,如果您对我们的成果表示认同并且觉得对你有所帮助,欢迎您对我们捐赠^_^。
          

       

      posted @ 2015-06-13 18:31  师享空间  阅读(918)  评论(0编辑  收藏  举报