程序流程控制
-
流程控制语句是用来控制程序中个语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块
-
其流程控制方式采用结构化程序设计中规定的三种基本流程结构,即:
-
顺序结构
-
程序从上到下逐行的执行,中间没有任何判断和跳转
-
-
分支结构
-
根据条件,选择性的执行某段代码
-
有if else和switch-casse两种分支语句
-
-
循环结构
-
根据循环条件,重复性的执行某段代码
-
有while、do...while、for三种循环语句
-
注:JDK1.5提供了fireach循环,方便的
-
-
顺序结构
分支结构
-
if..else结构(条件判断结构)
三种结构 第一种: if(条件表达式){ 执行表达式 } 第二种: if(条件表达式){ 执行表达式1 }else{ 执行表达式2 } 第三种: if(条件表达式1){ 执行表达式1 }else if(条件表达式2){ 执行表达式2 }else{ 执行表达式3 }
-
说明:
-
else结构是可选的
-
针对于条件表达式:
-
如果多个条件表达式之间式“互斥”关系(或没有交集的关系),那个判断和执行语句声明在上面还是下面,无所谓。
-
如果多个条件表达式之间有交集的关系,需要根据实际情况,考虑清除应将那个结构声明在上面。
-
如果多个条件表达式之间有包含关系,通常情况下,需要将范围小的声明在范围大的上面。否则,范围小的就没机会执行了
-
if-else结构是可以相互嵌套的
如果if-else结构中的执行语句只有一行时,对应的一对{}可以省略的。但是不建议大家省略
-
循环结构
使用Scanner从键盘获取int型数据
具体实现步骤:
-
导包:import Java.util.Scanner 将代码放在类前面
-
Scanner的实例化:Scanner scan=new Scanner(System.in)
-
调用Scanner类的相关方法,来获取指定类型的量
获取一个随机数
公式:[a,b]:(int)(Math.random()*(b-a+1)+a)
switch-case结构
switch(表达式){
case 常量1:
语句1:
break;
case 常量2:
语句2:
break;
default:
语句;
break;
}
运算符
运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等
-
算术运算符
-
运算符 运算 范例 结果 + 正号 +3 3 - 负号 b=4;-b -4 + 加 5+5 10 - 减 6-4 2 * 乘 3*4 12 / 除 5/5 1 % 取模(取余) 7%5 2 ++ 自增(前):先运算后取值 a=2;b=++a a=3;b=3 ++ 自增(后):先取值后运算 a=2;b=a++ a=3;b=2 -- 自减(前):先运算后取值 a=2;b=--a a=1;b=1 -- 自减(后)先取值后运算 a=2;b=a-- a=1;b=2 + 字符串连接 "He"+"llo" "Hello"
-
-
赋值运算符
-
扩展赋值运算符:+=,-=,*=,/=,%=
-
符号:=
-
当“=”两侧数据类型不一致时,可以使用自动类型转换或使用强制类型转换原则进行处理。
-
-
-
比较运算符(关系运算符)
-
运算符 运算 范例 结果 == 相等于 4==3 false != 不等于 4!=3 true < 小于 4<3 false > 大于 4>3 true <= 小于等于 4<=3 false >= 大于等于 4>=3 true instanceof 检查是否时类的对象 "Hello"instanceof String true -
比较运算符的结果都是Boolean型,也就是要么是true,要么是false。
-
比较运算符“==”不能误写成“=”
-
-
逻辑运算符
-
&:逻辑与
-
&&:短路与
当两个结果有一个为false时则,所有结果为false
-
|:逻辑或
-
||:短路或
当两个结果有一个为true时则,所有结果为true
-
!:逻辑非
获得的所有结果都取反
-
^:逻辑异或
当两个结果相同时,则false,当两个结果不同时则为true
-
a b a&b a|b a||b !a a^b true true true true true false false true false false true true false true false true false false true true true false false false false false true false
-
-
位运算符:运用比较少
-
位运算是直接对整数的二进制进行的运算
-
运算符 运算 范例 位运算符的细节 << 左移 3<<2=12-->322=12 空位补0,被移除的高位丢弃,空缺位补0 >> 右移 3>>1=1-->3/2=1 被移位的二进制最高位是0,右移后,空缺位补0;最高位是1,空缺位补1 >>> 无符号右移 3>>>1=1-->3/2=1 被移位二进制最高位无论是0或是1,空缺位都用0补 & 与运算 6&3=2 二进制位进行&运算,只有1&1时结果是1,否则都是0 | 或运算 6|3=7 二进制位进行|运算,只有0|0时结果是0,否则是1 ^ 异或运算 6^3=5 相同二进制位进行^运算,结果是0;1^1=0,0^0=0,不相同二进制位^运算结果是1.1^0=1,0^ ~ 取反运算 ~6=-7 正数取反,各二进制码按补码各位取反,负数取反,各二进制码按补码各位取反 结论:
-
位运算符操作的都是整形的数据
-
<<:在一定范围内,每向左移一位,相当于*2
-
>>:在一定范围内,每向右移一位,相当于/2
-
-
三元运算符
格式:(条件表达式)?表达式1:表达式2
说明:
- 条件表达式的结果位boolean类型
- 根据条件表达式结果的真或假,决定执行表达式1还是表达式2
- 表达式1和表达式2要求是一致的
- 三元运算符可以嵌套使用
- 凡是可以使用三元运算符的地方都可以改写为if else,反之不成立