黑马程序员—Java语言基础(运算符、代码示例)

------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------

运算符:

      常见的运算符有:

•     算术运算符

•     赋值运算符

•     比较运算符(关系运算符)

•     逻辑运算符

•     位运算符

•     三元运算符

   

算术运算符的注意问题

如果对负数取模,可以把模数负号忽略不记,如:5%-2=1。但被模数是负数就另当别论。

对于除号“/”,它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分。

例如:int x=3510;x=x/1000*1000;  x的结果是?

“+”除字符串相加功能外,还能把非字符串转换成字符串,

赋值运算符

•     符号:=

•     扩展赋值运算符: +=, -=, *=, /=, %=

 

比较运算符:

l  注1:比较运算符的结果都是boolean型,也就是要么是true,要么是false

l  注2:比较运算符“==”不能误写成“=”

逻辑运算符:

l  逻辑运算符用于连接布尔型表达式,在Java中不可以写成3<x<6,应该写成x>3 &x<6

“&”“&&”的区别:

•   单&时,左边无论真假,右边都进行运算;

•   双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。

      “|”“||”的区别同理,双或时,左边为真,右边不参与运算。

l  异或( ^ )与或( | )的不同之处是:当左右都为true时,结果为false

 

位运算符:

•     位运算是直接对二进制进行运算

三元运算符:

l  格式

•   (条件表达式)?表达式1:表达式2

•   如果条件为true,运算后的结果是表达式1

•   如果条件为false,运算后的结果是表达式2

l  示例:

•   获取两个数中大数。

•   int x=3,y=4,z;

•   z =(x>y)?x:y;//z变量存储的就是两个数的大数。

下面是代码示例和注释:

public class Test

{

      publicstatic void main(String[] args)

      {

           //取模

           int r= 10 % 3;

           System.out.println(r);

 

           //自增

           int i= 10;

 

           //i++;先取 i 值,再运算(i = i + 1)

           int j= i++;

           System.out.println(j+","+i);

           j = i;

           System.out.println(j+","+i);

          

           int m= 100;

           //++m;先运算(m = m + 1),后取值

           int n= ++m;

           System.out.println(n);

 

           //+: 字符串相加

           Stringstr = "abc";

           Stringstr2 = "def";

           Stringstr3 = str + str2;//abcdef

           System.out.println(str3);

 

           //如果对负数取模,可以把模数的负号忽略不计

           System.out.println(10% -3);//结果还是1

           //如果被模数是负数,则先对其绝对值进行取模运算,再在结果前加一个负号

           System.out.println(-10% 3);//结果是-1

 

           System.out.println(-10% -3);//结果也是-1

          

           //整数之间做除法时,只保留整数部分而舍弃小数部分

           int x= 3510;

           x = x/ 1000 * 1000;

           System.out.println(x);//结果为3000

 

           // + 除字符串相加功能外,还能把非字符串转换成字符串

           Stringstr4 = "1";

           System.out.println(str4+ 100);//结果为1100

 

           //扩展赋值运算符: +=, -=, *=, /=, %=

           //inty = x + 1000;

           x +=1000;//x = x + 1000;

           System.out.println(x);//结果为4000

 

           System.out.println(x>= 1000);//结果为true

 

           //逻辑运算符

           int a= 10;

           int b= 20;

 

           //& 与运算符,当且仅当两边都为真时,表达式的结果才为true

           System.out.println(a> 5 & b < 30);//结果为true

           System.out.println(a> 15 & b < 30);//结果为false

           System.out.println(a> 5 & b < 19);//结果为false

 

           // | 或运算符,当且仅当两边都为假时,表达式的结果为 false,此外结果都为true

           System.out.println(a> 5 | b < 30);//结果为true

           System.out.println(a> 15 | b < 3);//结果为false

           System.out.println(a> 5 | b < 19);//结果为true

 

           // ^ 异或运算符,当且仅当两边的表达式的结果不同时为true,两边结果相同则为false

           System.out.println(a> 5 ^ b < 30);//结果为false

           System.out.println(a> 15 ^ b < 30);//结果为true

           System.out.println(a> 5 ^ b < 19);//结果为true

 

           // ! 非运算符

           System.out.println(!(a> 5));//结果为false

 

           //&& 短路与 || 短路或短路逻辑运算符: 若短路逻辑运算符前的表达式已经可以确定整个表达式的值

           //则不再判断短路运算符后面的表达式

           System.out.println(a> 15 && (10 / 0 == 1));

 

           //位运算符

           int c= 3;//0000 0011

          

           //左移运算符

           System.out.println(c<< 2);//0000 1100 结果为12 3*(22次幂)

 

           //右移运算符

           System.out.println(c>> 2);//0000 0000 结果为0 3/(22次幂)

          

           //无符号右移运算符

           int d= -1;

           System.out.println(d>> 1);//结果为-1

           System.out.println(d>>> 1);//2147483647

 

           //& 位运算符

           /*

            *  00000010

            & 0000 0011

            * ---------

            *  00000010

           */

           System.out.println(2& 3);//结果为2

 

           //三元运算符

           Stringe = d > 3 ? "d > 3" : "d <= 3";

           System.out.println(e);//结果为 d <= 3

 

           e = d> 3 ? "大于" : "不大于";

           System.out.println(e);

 

           //以下不能通过编译,因为两边必须是表达式,且必须是类型兼容的表达式

           //d> 3 ? System.out.println("a"); :System.out.println("b");

 

      }

}

 

------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1.1 Java语言发展简史2 1.2 认识Java语言3 1.2.1 Java语言特性3 1.2.2 JavaApplet4 1.2.3 丰富的类库4 1.2.4 Java的竞争对手5 1.2.5 Java在应用领域的优势7 1.3 Java平台的体系结构7 1.3.1 JavaSE标准版8 1.3.2 JavaEE企业版10 1.3.3 JavaME微型版11 1.4 JavaSE环境安装和配置12 1.4.1 什么是JDK12 1.4.2 JDK安装目录和实用命令工具介绍12 1.4.3 设置环境变量13 1.4.4 验证配置的正确性14 1.5 MyEcilpse工具介绍JavaSE环境安装和配置15 1.6 本章练习16 第2章 2.1 什么是程序18 2.2 计算机中的程序18 2.3 Java程序19 2.3.1 Java程序中的类型19 2.3.2 Java程序开发三步曲21 2.3.3 开发Java第一个程序21 2.3.4 Java代码中的注释23 2.3.5 常见错误解析24 2.4 Java类库组织结构和文档27 2.5 Java虚拟机简介28 2.6 Java技术两种核心运行机制29 2.7 上机练习30 第3章 3.1 变量32 3.1.1 什么是变量32 3.1.2 为什么需要变量32 3.1.3 变量的声明和赋值33 3.1.4 变量应用实例33 3.2 数据的分类34 3.2.1 Java中的八种基本数据类型34 3.2.2 普及二进制36 3.2.3 进制间转换37 3.2.4 基本数据类型间转换38 3.2.5 数据类型应用实例38 3.2.6 引用数据类型39 3.3 关键字.标识符.常量39 3.3.1 变量命名规范39 3.3.2 经验之谈-常见错误的分析与处理40 3.3.3 Java标识符命名规则41 3.3.4 关键字42 3.3.5 常量42 3.4 运算符43 3.4.1 算术运算符43 3.4.2 赋值操作符45 3.4.3 关系操作符47 3.4.4 逻辑操作符48 3.4.5 位操作符49 3.4.6 移位运算符49 3.4.7 其他操作符50 3.5 表达式52 3.5.1 表达式简介52 3.5.2 表达式的类型和值52 3.5.3 表达式的运算顺序52 3.5.4 优先级和结合性问题52 3.6 选择结构54 3.6.1 顺序语句54 3.6.2 选择条件语句54 3.6.3 switch结构59 3.6.4 经验之谈-常见错误的分析与处理65 3.6.5 Switch和多重if结构比较66 3.7 循环语句66 3.7.1 While循环67 3.7.2 经验之谈-常见while错误70 3.7.3 do-while循环72 3.7.4 for循环74 3.7.5 经验之谈-for常见错误76 3.7.6 循环语句小结78 3.7.7 break语句79 3.7.8 continue语句82 3.8 JavaDebug技术84 3.9 本章练习85 第4章 4.1 一维数组90 4.1.1 为什么要使用数组90 4.1.2 什么是数组91 4.1.3 如何使用数组92 4.1.4 经验之谈-数组常见错误97 4.2 常用算法98 4.2.1 平均值,最大值,最小值98 4.2.3 数组排序102 4.2.3 数组复制103 4.3 多维数组105 4.3.1 二重循环105 4.3.2 控制流程进阶107 4.3.3 二维数组111 4.4 经典算法113 4.4.1 算法-冒泡排序113 4.4.2 插入排序115 4.5 增强for循环116 4.6 本章练习117 第5章 5.1 面向过程的设计思想120 5.2 面向对象的设计思想120 5.3 抽象121 5.3.1 对象的理解121 5.3.2 Java抽象思想的实现122 5.4 封装124 5.4.1 对象封装的概念理解124 5.4.2 类的理解125 5.4.3 Java类模板创建125 5.4.4 Java中对象的创建和使用127 5.5 属性130 5.5.1 属性的定义130 5.5.2 变量131 5.6 方法132 5.6.1 方法的定义132 5.6.2 构造方法135 5.6.4 方法重载138 5.6.5 自定义方法138 5.6.6 系统提供方法139 5.6.7 方法调用140 5.6.8 方法参数及其传递问题144 5.6.9 理解main方法语法及命令行参数147 5.6.1 0递归算法147 5.7 this关键字148 5.8 JavaBean149 5.9 包150 5.9.1 为什么需要包?150 5.9.2 如何创建包151 5.9.3 编译并生成包:151
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值