复习:标识符的命名规范
包名:xxxyyyzzz
类名、接口名:XxxYyyZzz
变量名、方法名:xxxYyyZzz
常量名: XXX_YYY_ZZZ
一.java的算术运算符
+
加法-
减法*
乘法/
除法%
取模(求余数)++
递增(使变量值加1)--
递减(使变量值减1)
++,--这两个比较特殊的运算符
class Numadd{
public static void main(String[] args){
int a1 = 10;
int b1 = ++a1;
System.out.println("a1="+a1+",b1="+b1);
int a2 = 10;
int b2 = a2++;
System.out.println("a2="+a2+",b2="+b2);
}
}
//---------- java ----------
//a1=11,b1=11
//a2=11,b2=10
-
a++
(后缀自增):这种操作会返回变量a
自增前的值,然后a
的值增加1。也就是说,自增操作发生在返回值之后。 -
++a
(前缀自增):这种操作会先让a
的值增加1,然后返回新值。也就是说,自增操作发生在返回值之前。 -
a--
(后缀自减):这种操作会返回变量a
自减前的值,然后a
的值减少1。也就是说,自减操作发生在返回值之后。 -
--a
(前缀自减):这种操作会先让a
的值减少1,然后返回新值。也就是说,自减操作发生在返回值之前。
int a = 1;
int b = a++; // 后缀自增,b 被赋值为 1,然后 a 的值变为 2
int c = ++a; // 前缀自增,a 的值先变为 3,然后 c 被赋值为 3
int a = 5;
int b = a--; // 后缀自减,b 被赋值为 5,然后 a 的值变为 4
int c = --a; // 前缀自减,a 的值先变为 3,然后 c 被赋值为 3
a++; 等同于(a=a+1)
b--; 等同于(b=b-1)
int b=++a;相当于a=a+1再将b=a;
int b=a++;相当于b=a再将a=a+1。
请大家看看几个案例,就明白了:
int a=90;
a+=90; (相当于a=a+90)
请问,a现在等于多少? 180
float b=89.7f;
b+=a; (相当于b=b+a)
请问,b现在等于多少? 269.7
int a=56;int b=90;
a-=34;b%=a; (相当于a=a-34,b=b%a)
System.out.println(b); 2
System.out.println(a); 22
----------------------------------------------------------------
二、关系(比较)运算符
==
等于!=
不等于>
大于<
小于>=
大于等于<=
小于等于
比较运算符的结果都是boolean型,也就是要么是true.要么是false
请编写一个程序,该程序可以接收两个数(可以是整数,也可是小数)并判断两个数是大于?小于?还是等于?
程序代码:
import java.io.*;//载入IO流包
public class numbijiao1{
public static void main(String[] args){
try{
//输入流,从键盘接收数
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
//给出提示
System.out.println("请输入第一个数");
//从控制台读取一行数据
String a1 = br.readLine();
System.out.println("请输入第二个数");
String a2 = br.readLine();
//把String转为float
float num1 = Float.parseFloat(a1);
float num2 = Float.parseFloat(a2);
if(num1>num2){
System.out.println("第一个大");
}
if(num1 == num2){
System.out.println("相等");
}
if(num1<num2){
System.out.println("第二个大");
}
}catch(Exception e){
e.printStackTrace();
}
}
}
三、逻辑运算符
-
逻辑与(AND) -
&&
- 符号:
&&
- 描述:当且仅当两个操作数都为
true
时,结果才为true
。 - 短路特性:如果第一个操作数为
false
,则不会计算第二个操作数,因为整个表达式的结果已经确定为false
。
- 符号:
-
逻辑或(OR) -
||
- 符号:
||
- 描述:如果两个操作数中至少有一个为
true
,则结果为true
。 - 短路特性:如果第一个操作数为
true
,则不会计算第二个操作数,因为整个表达式的结果已经确定为true
。
- 符号:
-
逻辑非(NOT) -
!
- 符号:
!
- 描述:反转操作数的布尔值。如果操作数为
true
,则结果为false
;如果操作数为false
,则结果为true
。
- 符号:
-
逻辑异或(XOR) -
^
- 符号:
^
- 描述:如果两个操作数的布尔值不同,则结果为
true
;如果相同,则结果为false
。
- 符号:
-
条件运算符(三元运算符) -
?:
- 符号:
condition ? expr1 : expr2
- 描述:如果
condition
为true
,则表达式的结果为expr1
的值;否则,结果为expr2
的值。
- 符号:
-
逻辑与(AND) -
&
- 符号:
&
- 描述:按位与操作,对两个整数操作数的对应位进行逻辑与操作。在逻辑表达式中不常用,但在位操作中非常有用。
- 符号:
-
逻辑或(OR) -
|
- 符号:
|
- 描述:按位或操作,对两个整数操作数的对应位进行逻辑或操作。在逻辑表达式中不常用,但在位操作中非常有用。
- 符号:
逻辑运算符通常用于控制程序的流程,如在 if
语句、while
循环、for
循环等中进行条件判断。短路逻辑运算符 &&
和 ||
在编写条件表达式时非常有用,因为它们可以在不必要计算所有操作数的情况下提前确定表达式的结果。
三元运算符
1.结构: (条件表达式)? 表达式1 : 表达式2
2.说明:
a. 条件表达式的结果为boolean类型
b.根据条件表达式真或假,决定执行表达式1,还是表达式2
如果表达式为true,则执行表达式1.
如果表达式为false,则执行表达式2
c.表达式1和表达式2的要求是一致的
d.三元运算符可以嵌套
3.凡是可以使用三元运算符的地方,都可以改写为if-else
反之,不成立
四、位运算符
-
按位与(AND) -
&
- 描述:对两个整数的每一位进行逻辑与操作。如果两个相应的位都为1,则结果位为1;否则为0。
-
按位或(OR) -
|
- 描述:对两个整数的每一位进行逻辑或操作。如果两个相应的位中至少有一个为1,则结果位为1;否则为0。
-
按位异或(XOR) -
^
- 描述:对两个整数的每一位进行逻辑异或操作。如果两个相应的位相同,则结果位为0;如果不同,则结果位为1。
-
按位非(NOT) -
~
- 描述:对整数的每一位进行逻辑非操作。将所有1变为0,所有0变为1。
-
左移(Left Shift) -
<<
- 描述:将一个整数的所有位向左移动指定的位数。左边空出的位用0填充。
-
右移(Right Shift) -
>>
- 描述:将一个整数的所有位向右移动指定的位数。右边空出的位用符号位(最高位)的值填充。
-
无符号右移(Unsigned Right Shift) -
>>>
- 描述:将一个整数的所有位向右移动指定的位数,但不考虑符号位。右边空出的位用0填充。
五、赋值运算符
=
简单赋值+=
加后赋值-=
减后赋值*=
乘后赋值/=
除后赋值%=
取模后赋值&=
位与后赋值|=
位或后赋值^=
位异或后赋值<<=
左移位后赋值>>=
右移位后赋值>>>=
无符号右移位后赋值
位运算符操作的都是整型的数据
<<:在一定范围内,每向左移1位,相当于*2
>>;在一定范围内,每向右移1位,相当于/2
Java中关于流程流程控制
其流程控制方式采用结构化程序设计中规定的三种基本流程结构,即,
>顺序结构
程序从上到下逐行地执行,中间没有任何判断和跳转
>分支结构
根据条件,选择性地执行某段代码
有if..else和switch-case两种分支语句
>循环结构
根据循环条件,重复性的执行某段代码
有while、do...while、for三种循环语句
注:JDK1.5提供了freach循环,方便的遍历集合、数组元素,