运算符、类型转化、判断结构、循环结构
运算符:
++:
int a = 4;
int b = a ++;
++在后:先运算再递增1 , a = 5, b= 4;
int b = ++ a;
++在前:先递增1,再运算
a = 5; b = 5;
--:
& &&:
&:逻辑与:
&&:短路与:
若&&前面的表达式的结果是false,&&后面的表达式就不再执行;
| ||:
|:逻辑或:
||:短路或:
若||前面的表达式的结果是true的时候,||后面的表达式就不再执行;
!: !true == false
类型转换:
short,byte,char < int < long < float < double
向上转换:
自动转换:
double d = 123L;
向下转换:
需要强制转换:
int i = (int)123L;
char c = 123;//?
基本类型数据和String值相连接,就会组成一个新的String值;
boolean b = false;
String s = false + "will";// 组成可一个新的String值 "falsewill"
String s = (String)false;//false
顺序结构:
代码里没有条件流程控制代码是一行一行执行的;
分支结构:
if:
1.
if(boolean条件)
{
//若为true就执行这里
}
if(boolean条件)
{
//若为true就执行这里
}
2.
if(boolean条件)
{
//若为true就执行这里
}
else
{
//为false就执行这里
}
和三目运算符相似:
格式: boolean表达式 ? 语句1 : 语句2 ;
若表达式结果是true: 执行语句1
false: 执行语句2
boolean表达式 ? 语句1 : 语句2; 结果类型是啥?
有语句1和语句2来决定,一般要求两个语句的值类型是一样的;
3.
if(boolean条件)
{
//若为true就执行这里
}
else if(boolean条件)
{
//若为true就执行这里
}
....
else
{
//以上条件都不满足就执行这里
}
switch:
格式:
switch支持的类型:byte,short,char,int, 引用类型: java5开始支持enum,java7开始支持String
switch(表达式)
{
case 表达式的值1;
//操作语句
break;
case 表达式的值2;
//操作语句
break;
case 表达式的值3;
//操作语句
break;
case 表达式的值4;
//操作语句
break;
default:
//以上都不满足
break;
}
循环结构:
1. while
格式:
while(boolean条件)
{
//条件为true就执行这里
}
2. do while
do
{
//循环体
}
while(boolean条件);
do while 无论条件是否满足至少会执行一次;
3. for:
for(初始化语句A;boolean条件B;循环完后执行语句C)
{
//语句D
}
初始化语句只执行一次,
执行顺序: A -> B(判断) -> D -> C -> B(判断)
for:适合于事先知道循环的次数;
三大循环是可以相互转换的;
for(int i=0; i < 4; i ++)
{
}
System.out.println(i);//访问不到
int i;
for(i=0; i < 4; i ++)
{
}
System.out.println(i);//可以访问
int i = 0 ;
while(i < 4)
{
i ++;
}
嵌套循环:
while(true)
{
while(true)
{
//
}
}
****
****
控制循环:
break; 表示终止当前所在的循环
continue: 表示跳过当前正在执行的这一次循环,然后继续执行下一次的循环
return: 表示终止该循环所在的方法;
for(int i = 0; i < 5; i ++)
{
if(i == 3){
break;// 0 1 2
//注意:break,和continue,return语句后面,不能再有语句;
}
System.out.println(i);
}
System.out.println("Hello");
for(int i = 0; i < 5; i ++)
{
if(i == 3){
//break;// 0 1 2
continue;//仅仅是不打印3
//注意:break,和continue语句后面,不能再有语句;
}
System.out.println(i);
}
控制外层循环:
使用标签(必须符合标识符的命名规范):
放在循环的前面:
outer:while(true)
{
inner:while(true)
{
break outer;
}
}