java编程思想03

控制程序流程

Java运算符

  1. 所有运算符都能根据自己的运算符对象生成一个值。
  2. 一个运算符修改可变运算对象的值,叫作“副作用”,运算符最常见的用途就是修改自己的运算对象,从而产生副作用,但是生成的值亦可没有副作用的运算符生成。
  3. 几乎所有的运算符都只能操作“主类型”,唯一的例外是"=","==","!="可以作用域所有对象。
  4. String类支持“+”,“+=”。
运算符优先级

运算符优先级决定了存在多个运算符时一个表达式各部分的计算顺序
其中顺序为:一元运算符(++,-- + -> 算术运算符和移位运算符(+ - * / << >> >>>> 关系运算符(>,<,>=,<=,==,!=>逻辑运算符和按位运算符(&&, ||, & ,|, ^> 三元运算符 > 赋值和复合赋值(=, +=,...

赋值
  1. 赋值用等号运算符(=)进行的,意思是“取得右边的值,把它复制到左边”;右边的值可以是任何常数、变量或者表达式,只要能产生一个值。
  2. 左边的值必须是一个明确的、已命名的变量。也就是说它必须有一个物理性的空间来保存右边的值。
  3. 对主类型的赋值,是对值的赋值,对赋值后的值的修改并不会影响原来的值;而对对象的赋值是句柄的复制,对赋值后的对象进行操作会改变原来对象的值。
算术运算符
  1. java基本算术运算符与其他大多数程序设计语言是相同的。
    +-*/%基本算术运算符。
  2. 一元加、减运算符,一元减号和加号运算符和二元加减运算符时相同的运算符(在运算过程中,避免混淆需要明确用花括号区分);一元加号不做任何事情,一元减号得到运算对象的负值。
  3. 自动递增和递减;自动递增和递减分为前递增,前递减和后递增,后递减;前递增,前递减会先改变运算符的值,再使用运算符的值,后递增,后递减会先使用运算符的值,再运算。
关系运算符
  1. 关系运算符会生成一个“布尔”(boolean)的结果,它们评价运算对象值之间的关系;若关系是真实的,关系表达式生成true(真);若关系不真实,则生成false(假)。
  2. 关系运算符有大于(>),小于(<),大于等于(>=),小于等于(<=),等于(==),不等于(!=),其中等于(==)和不等于(!=)适用所有内建的数据类型,但其他比较不适用于boolean类型。
  3. 等于(==),不等于(!=)用于主类型比较时,比较的是值;比较对象时,比较的是对象的句柄,而不是对象的内容;若要比较对象的内容则使用equals来比较,但是equals不适用“主类型”和自定义对象(主类型使用===);自定义对象的equals系统默认比较的是句柄,如果要比较内容,需要自己重写它。
逻辑运算符
  1. 逻辑运算符 AND(&&),OR(||),NOT(!)能生成一个布尔值(true,false)–以自变量的逻辑关系为基础。

  2. 不可将非布尔值当做布尔值在逻辑关系中使用。

  3. 逻辑运算符是短路运算的,也就是说只有明确得出整个表达式真或假的结论,才会进一步对表达式进行逻辑求值,如:

    if (test(0) && test(1) && test(2))
    

    只有明确test(0)的值为真(true),才会对test(1)进行逻辑取值。

  4. 按位运算符,按位运算符操作一个整数主类型中的单个“比特”,即二进制位。按位运算符会对两个自变量对应的位执行布尔代数,并最终生成一个结果。

    4-1. 按位运算符: 按位与AND(&),按位或OR(|),按位异或XOR(^),按位非NOT(~)。

    4-2. AND(&)输入都是1,生成1,否者0;OR(|)输入位全部是0,生成0,否者1;XOR(^)输入位一个是0,一个是1生成1,否者0;NOT(~)属于一元运算符,只对一个自变量进行操作;生成相反的值,0变成1,1变成0.

    4-3. 按位运算符只使用了一个字符。

    4-4. 按位运算符可以和等号(=)联合使用,以便合并运算及赋值。

    4-5. 按位运算符可用于布尔值运算,具有与逻辑运算符相同的效果,但是不会短路。有一点需要注意的是NOT(~)不能使用于布尔值。

移位运算符
  1. 移位运算符面向的运算对象是二进制的“位”。可单独使用它们处理整数类型.
  2. 左移运算符(<<)能够将运算符左边的运算对象向左移动运算符右侧指定的位数(低位补0);“有符号”右移运算符(>>)则将运算符左边的运算对象向右移动运算符右侧指定的位数(正值高位插入0,负值高位插入1);“无符号”右移运算符(>>>),则会在高位插入0,无论正负值。
三元运算符

布尔表达式 ? 值0 : 值1

逗号运算符

java中逗号运算符只用在for循环中

字符串+
  1. 连接字符串,会把它们拼接在一起
  2. 字符串和其他不是非字符串的值,会把非字符串的值变成字符串再拼接。
造型运算符
  1. “造型”(Cast)的作用是“与一个模型匹配”,在适当的时候会将一种类型数据自动转换成另一种。
  2. 我们可以将任何主类型“造型”成其他任何一种主类型,但boolean除外;一个较小的主类型“造型成”较大的主类型,不必明确进行(编译器会自动进行,其转换规则:char,byte,short-int;float-double, int - long).
  3. 对象可以“造型”到类型“家族里”(上溯造型)。

执行控制

真假

所有条件语句都利用条件表达式的真或假来决定执行流程。

if-else
if (布尔表达式)
	语句
else
	语句

if-else语句可以嵌套使用

return

return用在方法中可以返回值和中断函数

循环

while,do-while,for,其中do-while至少执行一次。

循环中断和继续
  1. break 退出循环,不执行循环中剩余的部分。
  2. continue 停止执行当前的循环,重新开始下一次的循环反复。
  3. break lablel1: break标签会中断循环,回到标签处,标签后的循环都不会执行。
  4. continue lable1:continue标签会停止当前循环,回到标签处,但是还是会进入到标签后的循环,此时会跳过递增,直接递增。
switch
switch(整数选择因子) {
	case 整数1:语句;break;
	case 整数2:语句;break;
	//...
	default:语句;	
}

其中case后面的break是可选的,当不加break时,case后面的语句执行完成后,会继续执行下一个case直到遇到breakdefault

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值