简介

继续第3节内容,我们现在开始讲Java的运算符、表达式和常用语句

二、Java运算符

1、按照运算符的功能可以分为:6
  • 算术运算符,如:+、-、*、/、%、++、--
  • 关系运算符,如:>=、>、!=
  • 逻辑运算符,如:&&、||、!
  • 赋值运算符,如:=、+=、-=
  • 位运算符,如: &、|、~、^
  • Instanceof运算符
2、算术混合运算的精度
  • 精度从“低”到“高”排列的顺序是:
    byte  short  int  long  float  double
  • Java按运算符两边的操作元的最高精度保留结果的精度,例如:
    5/2的结果是2,要想得到2.5,必须写成5.0/2或5.0f/2。
3、char型数据和整型数据运算结果的精度是int

例如:byte  x=7; 

那么:‘B’+x; 的结果是int型,因此:

下列写法是不正确的:char  ch=’B’+x;

应当写成:char ch=(char)(’B’+x);

4、关系运算符:<、>、<=、>=、==、!=
  • 用来比较两个值的关系,结果是boolean型,当运算符对应的关系成立时,运算结果是true,否则是false。
  • 结合方向:从左到右
  • 优先级:

<、>、<=、>=  :6级

==、!=  :7级

5、逻辑运算符:&&(与)、||(或)、!(非)
  • 逻辑运算符的操作元必须是boolean型的值或表达式,例如:
  • 2>8&&9>2的结果为false
  • 2>8||9>2的结果为true。
  • 结合方向:&&、||为从左向右;!为从右向左
  • 优先级: &&(11级)、||(12级)、!(2级)
  • 逻辑运算符&&||也称为“短路逻辑运算符
  • 对于表达式op1&&op2,当op1的值为false时,&&运算符不再计算op2的值,例如:
  • 假定x值为1,那么:
  • 执行 ( (  y=1 ) == 0 ) && ( ( x=6 ) == 6 )后,x值为1
  • 执行 ( (  y=1 ) == 1 ) && ( ( x=6 ) == 6 )后,x值为6
6、赋值运算符:=、+=
  • 赋值表达式的值就是“=”左面变量的值,注意不要和比较运算符“==”混淆
  • 结合方向:从右到左
  • 优先级:14级
7、位运算符:&、|、~、^
  • 对数据进行二进制运算
  • “&” :按位与,若a,b两个数据对应位是1,则c的该位是1,否则是0。
  •  “|”:按位或,若a,b两个数据对应位是0,则c的该位是0,否则是1。
  • “~”:按位非,若a对应位是0,则c的该位是1,否则是0。
  • “^”:按位异或,若a,b两个数据对应位相同,则c的该位是0,否则是1。
  • 结合方向:&、|、^    从左向右; ~从右向左
  • 优先级:&(8级)、 ^(9级)、|(10级)、~(2级)
  • 与逻辑运算符不同,对于表达式op1&op2,位运算符要在计算完op1和op2之后再给出运算结果。
    例如: x初始值为1,

执行( (  y=1 ) == 0 ) && ( ( x=6 ) == 6 )后,x值是1

执行( (  y=1 ) == 0 ) & ( ( x=6 ) == 6 )后,x值是6

8、instanceof运算符

用法:
boolean  isString = x instanceof  String

  • 左面的操作元是一个对象;右面是一个类。
  • 当左面的对象是右面的类创建的对象时,该运算符运算的结果是true ,否则是false
  • 结合方向:从右向左
  • 优先级:2级
9、总结

运算符的优先级决定了表达式中运算执行的先后顺序,但没有必要刻意去记忆运算符号的优先级别,在编写程序时可尽量的使用括号()运算符号来实现想要的运算次序,以免产生难以阅读或含糊不清的计算顺序。

三、Java语句

Java里的语句可分为以下五类:

  • 、方法调用语句,如:System.out.println(“Hello”);(常用)
  • 、表达式语句 ,如:x=23;
  • 、复合语句:用{ }括起的若干行语句
  • 、空语句:一个分号也是一条语句
  • 、控制语句:分支语句和循环语句(常用)
  • 、package 语句和 import语句(难点)

1、Java 语言的分支语句有2种类型:

  • if条件语句
  • switch开关语句
1.1、if 语句

的一般形式:

if ( 表达式 )

  { 

       若干语句

  }

  • if-else 语句的一般形式:

if ( 表达式 )

 { 

       若干语句

 }

else

 { 

       若干语句

 }

  • if-else if - else 语句的一般形式:

if ( 表达式 ) { 

       若干语句

 }

else if (表达式){ 

       若干语句

 }

……

else {

               若干语句

}

  • if后()内的表达式结果必须是boolean类型;
  • { }中可包含一到多条语句,如果只有一个语句,则可以省略{ },但为了增强程序可读性,建议不要省略;
  • 有时为了编程需要,{ }内可以没有语句
public class Main {
    public static void main(String[] args) {
        int math = 60;

        if( math >= 60 )
        {
            System.out.println("数学及格了~~");
        }
        else
        {
            System.out.println("数学挂了!");
        }
    }
}

java 表达式运算库_java

1.2、switch语句

是多分支的开关语句,一般格式:..l

switch(表达式)  {

   case 常量值1 :

若干语句

               break;

   ...

   case  常量值n :

若干语句

              break;

   default :

若干语句

}

  • switch语句实际相当于多条件的“if … else if …else…”语句;
  • switch(表达式)中表达式的值必须是整型或者字符型,case常量值亦是如此;(long除外)
  • case常量值必须互不相同
  • 如果表达式的值与某个case后的常量值相同,则执行case中的语句,直到遇到break语句为止;如果case中没有使用break语句,那么会继续执行后继的case中的语句,直到遇到break为止
  • 如果表达式的值与任何case常量值都不相同,则执行default中的语句。

例如:

public class Main {
    public static void main(String[] args) {
        int  math = 60;
        System.out.println("math="+math);
        switch ( math / 10 )  {
            case  9 :
                System.out.println("你很完美~~");
            case  8 :
                System.out.println("你很优秀~~");
                break;
            case  7 :
                System.out.println("你过关了~");
            case  6 :
                System.out.println("你过关了~");
            default  :
                System.out.println("你挂了!");
                break;
        }
    }
}

执行结果是:

java 表达式运算库_java 表达式运算库_02

math = 95时:

java 表达式运算库_开发语言_03

math = 86时;

java 表达式运算库_java_04

math = 71时:

java 表达式运算库_算法_05

math = 59时:

java 表达式运算库_算法_06

math = 100时:

java 表达式运算库_java_07

2、循环语句
2.1、for循环
  • 格式:
    for(表达式1;表达式2;表达式3)
    {
        若干语句,称为循环体
    }
  • 表达式1:变量初始化
  • 表达式2:boolean型表达式,循环条件
  • 表达式3:改变循环条件
  • for语句执行过程:

for(表达式1;表达式2;表达式3)

{
    若干语句,称为循环体

}

java 表达式运算库_算法_08

例如:

for ( int i = 1; i <= 100 ; i++ )

{

    //循环执行100遍

    System.out.println(“博主很帅!!!");

}

for ( int i = 1; i <= 100 ; i+=2 )

{

    //循环执行50遍

    System.out.println("博主很帅!!!");

}

又如:

public class Main {
    public static void main(String[] args) {
        int a[] = {1,2,3,4,5,6};
        for ( int i = 0; i <a.length ; i++ )
        {
            System.out.println(a[i]);
        }
        for ( int i : a)
        {
            System.out.println( i );
        }
        
    }
}

以上两个for循环是等价的👇: 

java 表达式运算库_java_09

2.2while 循环
  • 格式:

    while( 表达式 )

     {

若干语句

     }

  • do-while循环
  • 格式:

      do

       {

若干语句

       }

       while(表达式);

  • while循环和do-while循环的区别
  • while循环是先判断,后执行;
  • do-while循环是先执行,后判断,即: do-while循环至少执行一次

java 表达式运算库_System_10

  • breakcontinue语句多用在循环体中
  • break:中断循环,跳出循环体;
  • continue:中断本次循环,不再执行continue后的循环体语句,转而进入下一次循环。

例如:

public class Main {
    public static void main(String[] args) {
        for ( int i = 1; i <= 10 ; i++ )
        {
            if ( i == 5 )
                break;
            System.out.println(i);
        }
        for ( int i = 1; i <= 10 ; i++ )
        {
            if ( i == 5 )
                continue;
            System.out.println(i);
        }
    }
}

java 表达式运算库_java 表达式运算库_11

3、注释语句
  • 单行注释://

//  这是单行注释

  • 多行注释:/*    */

/*

这是多行注释

*/

  • 文档注释:/**       */

/**

这是文档注释

*/

  • 文档注释通常写为:

/**

*  这是第一行文档注释

*  这是第二行文档注释

*/

  • JDK中的javadoc程序可以提取文档注释并生成HTML帮助文档(Java帮助文档就是这样生成的)
  • javadoc基本格式:

javadoc -d 文档存放目录  源文件

结束语:

以上是Java入门的第4步,希望大家喜欢

  • 本章内容
  • Java语言的诞生、特点、简单JAVA程序
  • Java语言基本语法,包括:数据类型、数组、运算符和表达式、控制语句
  • 复习要求
  • 熟练掌握Java语言基本语法
  • 读懂课件及教材中的Java程序
  • 能够应用Java语言编写较为简单的程序

下一章开始讲类与对象