[从零开始学Java] 基础语法 (二)

一. 数据类型

常用Java数据类型
数据类型占用存储控件表数范围备注
byte 1字节 -128 ~ 127  
short 2字节 -2^15 ~ 2^15 - 1  
int 4字节 -2^31 ~ 2^31 - 1  
long 8字节 -2^63 ~ 2^63 - 1 long常量后面必须加l(小写L)或L
float 4字节 -3.403E38 ~ 3.403E38 float常量后面必须加f或F
double 8字节 -1.798E308 ~1.798E308  
char 2字节    

 

 

 

 

 

 

 

 

 

 

 

 

 

 

二. 数据类型转换

1.自动数据类型转换

  (1).  如果一个操作数为 double 型,则整个表达式可提升为 double 型
  (2).  满足自动类型转换的条件
         (2.1) 两种类型要兼容:数值类型(整型和浮点型)互相兼容。
         (2.2) 目标类型大于源类型:double型可以存放int型数据,因为double型变量分配的空间宽度足够存储int型变量,因此,我们也把int型变量转换成double型变量形象地成为“放大转换”、

2.强制类型转换

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

 byte, short, char 在进行运算时会先转换成 int 类型

byte b1 = 1, b2 = 3, b3 = 129; // 报错, 129 超出byte表数范围
byte b4 = (byte)(b1 + b2);   // byte 运算会先转换为int, b1 + b2 的运算后的结果为 int 类型,需要强制转换为 byte 才能赋值给 b4

char c1 = 'a', c2 = 1;
char c3 = (char)(c1 + c2);   // char 运算会先转换为int, 所以计算后的值需要强制转换为 char 赋值给 c3

double d1 = 1234.56;
double d2 = 1.23E50;
float f1 = (float)d1;      // double 转换为 float
float f2 = (float)12.3;
float f3 = 12.3f;        // float 常量后面需要加 f
float f4 = (float)d2;      // 超出float表述范围,f4 为无限大

long l1 = 123;
long l2 = 123456789000L;    // long 常量后面需要加 L 

 

强制类型转换往往是从宽度大的类型转换成宽度小的类型,使数值损失了精度,因此可以形象地称这种转换为"缩小转换"

 

三. 变量的声明及使用

1.程序运行的过程中,将数值通过变量加以存储,以便程序随时使用,整个步骤如下:

(1). 根据数据的类型在内存中分配一块内存空间,并给它起名,即“变量名”.

(2). 将数据存储到这块内存中

(3). 通过变量名从内存中取出数据使用

 

2.如何定义和使用变量

(1). 声明变量,即“根据数据类型在内存中申请一块空间”

//语法
  数据类型   变量名;

//示例
  double score;    // 声明双精度浮点型变量 score 存储分数
  String name;     // 声明字符串型变量 name 存储学生姓名
  char sex;        // 声明字符型变量 sex 存储性别

 

(2). 给变量赋值,即“将数据存储至相应的内存空间”

//语法
  变量名 = 值;

//例如:
  double score = 98.5;    // 存储 98.5
  String name = "张三";    // 存储 “张三”
  char sex = '男';      //  存储 '男'

 

(3). 调用变量

System.out.println(score);   //从控制台输出变量 score 存储的值
System.out.println(name);    //从控制台输出变量 name 存储的值
System.out.println(sex);     //从控制台输出变量 sex 存储的值

  使用声明的变量名,就是在使用变量对应的内存空间中存储的数据 

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

 

示例:

public class MyVariable
{
    public static void main(String[] args)
    {
        int money = 1000;                //定义并初始化变量money的值               
        System.out.printfln(money);      //显示存储的数据的值
    }
}

 

四. 变量命名规则

  1. 变量必须以字母、下划线 “_” 或 “$” 符号开头.

  2. 变量可以包括数字,但不能以数字开头.

  3. 除了 "_" 或 "$" 符号外,变量名不能包含任何特殊字符.

  4. 不能用Java语言的关键字,比如 int、class、public 等.

  规范:

  变量名要简短且能清楚地表明变量的作用,通常第一个单词的首字母小写,其后单词的首字母大写。例如:

int ageOfStudent;    //学生年龄
int ageOfTeacher;    //教师年龄

五. 常见错误

1. 变量未赋值先使用

// 常见错误1
  public class Error1
  {
      public static void main(String[] args)
      {
          String title;                 // 声明变量 title 存储课程名称
          System.out.println(title);    // 从控制台输出变量的值
      }
  }

上面这段代码,由于未赋值就使用,编译器会提示编译错误。

排错方法:使用前要给变量赋值

 

2. 使用非法的变量名

// 常见错误2
  public class Error2
  {
      public static void main(String[] args)
      {
          int #age = 18;              // 声明变量 age 存储年龄
          System.out.println(#age);   // 从控制台输出变量的值
      }
  }

上面这段代码,由于变量名不符合规则,编译时编译器将提示错误

排错方法:修改不合法的变量名

 

3. 变量名不能重名

// 常见错误3
  public class Error3
  {
      public static void main(String[] args)
      {
          String name = "张三";        // 声明变量存储 "张三"
          String name = "李四";        // 声明变量存储 "李四"
      }
  }

上面这段代码,由于变量名重复,编译时会提示“局部变量 name 重复”

排错方法:修改使用两个不同的变量名来存储

 

六. 运算符与输入语句

1. 赋值运算符  "="     "="可以将某个数值赋给变量,或是将某个表达式的值赋给变量

2. 算术运算符

运算符 说明 举例
+ 加法运算符,求操作数的和 5+3 等于 8
- 减法运算符,求操作数的差 5-3 等于 2
* 乘法运算符,求操作数的乘积 5*3 等于 15
/ 除法运算符,求操作数的商 5/3 等于 1
% 求余运算符,求操作数相除的余数 5%3 等于 2

 

 

 

 

 

 

 

 

示例:

 import java.util.Scanner;
  public class ScoreStat
  {
      public static void main(String[] args)
      {
          Scanner input = new Scanner(System.in);
          System.out.print("STB的成绩是:");
          int stb = input.nextInt();                // STB 分数
          System.out.println("Java的成绩是:");        
          int java = input.nextInt();               // Java 分数
          System.out.println("SQL的成绩是:");
          int sql = input.nextInt();                // SQL 分数
          int diffen;                     // 分数差
          double avg;                     // 平均分
          System.out.println("------------------------------");
          System.out.println("STB\tJava\tSQL");
          System.out.println(stb + "\t" + java + "\t" + sql);
          System.out.println("------------------------------");
          diffen = java - sql;            // 计算 Java 课和SQL课的成绩差
          System.out.println("Java 和 SQL 的成绩差:" + deffin);
          avg = (stb + java + sql) / 3;   //计算平均分
          System.out.println("3 门课的平均分是:" + avg);
          
      }
  }

 

3. 从控制台输入一个整数

Scanner input = new Scanner(System.in);
int stb = input.nextInt();

这两行代码做的事情就是通过键盘的输入得到STB的成绩。这里获取的是整型变量,所以调用nextInt()方法。如果获取的是字符型变量,需要调用next()方法。

使用该功能,需要在Java源代码中导入相应的包:

   import java.util.Scanner;
// 或者 import java.util.*;

 

4. 自增自减运算符

自加运算符 ++  
自减运算符 --

例如:

int num1 = 3;
int num2 = 2;
num1++;
num2--;

这里,"num1++" 等价于 "num1 = num1 + 1", "num--" 等价于 "num2 = num2 - 2"

  
七. 总结
1. 变量时一个数据存储空间的表示,它是存储数据的基本单元.
2. Java中常用的数据类型有整型(int) 、双精度浮点型(double) 、字符型(char) 和 字符串型(String).
3. 变量要先声明并赋值,然后才能使用.
4. Java提供各种类型的运算符,具体如下
    (1). 赋值运算符 (=) .
    (2). 算术运算符(+ 、- 、* 、/ 、%) .

5. 数据类型转换时为了方便不同类型的数据之间进行运算.

6. 数据类型转换包括自动类型转换和强制类型转换,发生自动类型转换必须符合一定的条件.
7. Java 提供 Scanner 类可以实现从控制台获取键盘输入的信息.

 

posted @ 2018-11-19 21:50  joky2019  阅读(172)  评论(0)    收藏  举报