运算符
表达式
通过将标识符,运算符,和字面量按照一定的规则,结合到一起,得到一个结果的式子,叫做表达式。
算数运算符(+ ,- ,* ,/,%,++,–,+=,-=,=,/=)
/号会出现的问题
整数相除只能得到整数,要想得到浮点数必须要有浮点数的参与 float f = (float)3/5;
int/o:报错
float/0:无限Infinite
0f/0:NaN
%
%:两个数字做除法余的数
++
a++等于a+1
参与操作的时候如果放在变量的后边,先拿变量进行操作,再进行++或–
–
a–等于a-1
参与操作的时候如果放在变量的前边,先进行++或–,后拿变量进行操作
+=
a+=b 将a+b的值赋值给a
把左边和右边的数据进行加法操作,将结果值赋值给左边
-=
a-=b 将a-b的值赋值给a
=
a=b 将ab的值赋值给a
/=
a/=b 将a/b的值赋值给a
位运算符(>> << >>> & | ^ ~)
>>
二进制的基础右移一位;原来是符号位是啥就补啥
<<
左移一位:原来是符号位是啥就补啥
>>>
不管原来符号位是什么都补0
& 与
a&b,a和b都是真就是真否则就是假
| 或
一个数字为真就是真,
^ 异或
二进制相同就是假不相同就是真
~ 非
按位取反
关系运算符(== != > < >= <=)(true false)
== (等于)
!= (不等于)
>
<
>=
<=
逻辑运算符(& | && || !)
&与
无论左边真假,右边都要执行。
|或
无论左边真假,右边都要执行
&&短路与
短路与&&,如果左边为真,右边执行;如果左边为假,右边不执行。
||短路或
短路或如果左边为假,右边执行;如果左边为真,右边不执行。
!逻辑非
!a,结果与a相反
特殊运算符
优先级运算符()
赋值运算符 =
三目运算符 boolean?分支1:分支2
●范例: a>b?a:b;
计算规则: 首先计算关系表达式的值 如果值为true,表达式1的值就是运算结果 如果值为false,表达式2的值就是运算结果
流程控制
局部变量不赋初值不能使用
在没有流程控制之前;代码的执行顺序是依次从上之下,从左到右执行的。
含义:可以在一定的程度上,改变代码的执行顺序,跳过部分代码或重复部分代码都是流程控制的作用。
常用的流程控制有 if,for,switch,while,do…while
把常见的流程控制,分成两个大类,分别分支和循环
分支类别,就是遇到了某个条件成立,那么就可以选择一个分支去执行,当然也可以认为某些条件不成立,就选择或者跳过一个分支去执行。
分支使用的关键字有两个 if switch
if分支 其格式 if(boolean) {code}离散型和连续型;
上面的格式,大括号可以省略,但是如果没有大括号,那么code只能有一行代码,第二行代码都会被认为不在if过程中
switch只能做离散型;
switch的格式switch(标志符){
case 目标值:
code
case 目标值:
code
... ...
default:
code
}
bety short int char只有这三个可以 字符串也可以
关键词
break;//当前位置跳出if没用,
continue:只截断本分循环。
for循环
是指,当条件被满足的时候,重复执行某一个部分的代码
for循环的格式 for(1;2;3){4}顺序1243 243 243 2不成立(false)跳出
1的含义:初始化部分可以省略,含义只有在for循环在第一次开始的时候,才会执行1部分的代码
2.条件判断部分:默认是必然成立的,每一次循环完成,准备开始下一次循环之前必然需要执行一遍2部分代码
3.条件改变部分,每次循环的代码块执行完成以后,后先执行3部分的代码来改变循环条件。
4,循环的代码块
流程嵌套
while循环
while循环的格式:while(boolean){code}
知道循环退出条件
如果代码告诉我要循环多少次用for循环,要是给一个boolean值就用while循环。
int i = 4;
int e = 0;
boolean flag = false;
while(!flag){
System.out.println(“chibaozi”);
e++;
if(e>=i){
flag = true;
}
}
数组
固定长度,数组是一个连续不断的内存空间,用来保存相同类型内容的一个容器
数组的大小是在创建完后,不能随便改变,想改变重新写个new换个地方。
数组的格式:类型[] 标识符;
关键字new
创建新的数组
动态赋值
int[] array= new int[6];//动态赋值,默认值为0;
array[0] = 23456;
增强for(类型:数组)
二维数组
类型 标识符
int[][] array = new int [5][7]]
int[][] game = {
{0,1,0},
{1,0,1},
{0,1,0}
}
静态赋值也叫静态初始化
int[] array = {4,5,6,7,8};
System.out.println(array[2]);
1定位 2.替换3.求长.length
直接排序
for(int i = 0;i<array.length;i++){
//每一次循环都在确定第i个位置的最小值是谁
for(int j=i;j<array.length;j++){
if(array[i]>array[j]){
int temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
}
for(int i = 0;i<array.length;i++){
System.out.print(array[i]+"");
}
选择排序
for(int i = 0;i<array.length;i++){
int minIndex = i;
int minValue = array[i];
for(int j = i;j<array.length;j++){
if(minValue> array[j]){
minIndex = j;
minValue = array[j];
}
}
int temp = array[i];
array[i] = array[minIndex];
array[minIndex] = temp;
}
for(int item : array){
System.out.println(item + "");
}
冒泡排序
int[] array = {3,6,2,7,3,8,3,2};
for(int i = 0;i<array.length;i++){
for(int j = 0;j<array.length-i-1;j++){
if(array[j]>array[j+1]){
int temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
}
}
for(int item : array){
System.out.print(item+"");
}