Java2实用教程 第三章

运算符与表达式

加减乘除、求余运算符

  1. +,- ,*,/,%是二目运算符,用于连接两个操作单元的运算符。
  2. 结合(即运算)方向从左到右。
  3. 操作元是整型和浮点型数据。
  4. 加减运算符优先级是4级。
  5. 乘除、求余运算符优先级

自增、自减运算符

  1. ++、- - 是单目运算符,可以放在操作元前面或后面,操作元必须是整型或浮点型变量。
  2. ++x(- - x)表示在使用x之前,先使x的值增(减)1。
  3. 如果x的原值是5 ,则对于“y=++x;”,y的值是6,“y=x++;”,y的值是5.

算术混合运算的精度

(1)如果表达式中有双精度浮点数(double 型数据),则按双精度进行运算。

(2)如果表达式中最高精度是单精度浮点数(float 型数据),则按单精度进行运算。

(3)如果表达式中最高精度是long 型整数,则按long 精度进行运算。

(4)如果表达式中最高精度低于int 型整数,则按int 精度进行运算。

Java允许把不超出byte、short 和char的取值范围的算术表达式的值赋给byte、short 和char型变量。

byte x =(byte)20+'a';是正确的
byte X= (byte)30+'b';却无法通过编译,编译错误是“可能损失精度,找到int需要byte", 
其的结果是int刑常量,其值超出了bvte亦量的取值范围

 关系运算符与关系表达式

  1. 关系运算符是二目运算符,用来比较两个值的关系。关系运算符的运算结果是boolean型,当运算符对应的关系成立时,运算结果是true,否则是false。
  2. 算术运算符的级别高于关系运算符。
  3. 结果为数值型的变量或表达式可以通过关系运算符形成关系表达式。

逻辑运算符与逻辑表达式

  1. 逻辑运算符包括&&、||、!。 其中&&、|| 为二目运算符,!为单目运算符。操作元必须是boolean型数据。
  2. 结果为boolean型的变量或表达式可以通过逻辑运算符形成逻辑表达式。
  3. 关系运算符的级别高于&&、|| 的级别,2>8&&8>2 相当于(2>8) && (9>2)。
  4. 逻组运算行&&和也称作短路逻辑运算符。

赋值运算符与赋值表达式

  • 赋值运算符=是二目运算符,左面的操作元必须是变量,不能是常量或表达式。赋值运算符的优先级较低,是14级,结合方向是从右到左。

位运算符

  1. 整型数据在内存中以二进制的形式表示, 例如个int 型变量在内存中占4个字节共32位。
  2. 负数采用补码的形式。

语句概述

Java里的语句可分为以下6类。

  1. 方法调用语句
    System.out.println("Hello!");
  2. 表达式语句
    x=23;
  3. 复合语句:{ }以及里面的内容。
    {
        z=123+x;
        System.out.println("How are you");
    }
  4. 空语句
    ;
  5. 控制语句:条件分支语句、开关语句、循环语句。
  6. package语句和import语句

if语句

  1. if语句是单条件单分支语句。
  2. 在if语句中,若复合语句只有一条语句,{ }可以省略不写,为了增强程序的可读性最好写上。

switch开关语句

  1. switch语句是但条件多分支的开关语句。
  2. break、default是可选(可写可不写)的。
  3. switch语句中表达式的可以是byte、short、int、char型,不可是long型。

do-while循环语句

do-while循环和while的区别是do-while的循环体至少被执行一次。

for语句增强

格式:

for(声明循环变量:数组的名字)循环遍历参数代表所代表的参数
{
    ...
}
public class Example3_8 
{
   public static void main(String args[]) 
   {
     int a[]={1,2,3,4};
     char b[]={'a','b','c','d'};
     for(int n=0;n<a.length;n++)//传统方式
     { 
         System.out.println(a[n]);
     }
     for(int n=0;n<b.length;n++)//传统方式
     { 
         System.out.println(b[n]);
     }
     for(int i:a) //循环变量i依次取数组a的每一个元素的值(改进方式)
     {             
         System.out.println(i);
     } 
     for(char ch:b) //循环变量ch依次取数组b的每一个元素的值(改进方式)
     {          
        System.out.println(ch);
     }  
   }
}

声明循环变量必须是变量声明,不可以使用已经声明过的变量

inti0;
for(i:a)  非法
{
    System.out.println(i);
}

在从键盘输入数据时,对象调用hasNextXXX()方法等待用户输入数据,在调用nextXXX()方法获取用户输入的数据。例如:

import java.util.*;
public class Example3_9 
{
    public static void main (String args[ ])
    {
      Scanner reader=new Scanner(System.in);
      double sum=0;
       int m=0;
       while(reader.hasNextDouble())  只要输入的是非数字字符串,则返回值为false
       {
           double x=reader.nextDouble();
           m=m+1;
           sum=sum+x;
       }
       System.out.printf("%d个数的和为%f\n",m,sum);
       System.out.printf("%d个数的平均值是%f\n",m,sum/m); 
    }
}

运行结果:
98
129.77
865.88
and
3个数的和为1093.650000
3个数的平均值是364.550000

小结 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值