运算符和表达式
赋值运算:
使用“=”进行赋值运算,用于对变量赋值。关于赋值运算符,除了将右边的表达式计算出来赋给左边以外还具备如下特点:赋值表达式本身也有值,其本身之值即为所赋之值。
使用扩展赋值表达式
在赋值运算符"="前加上其他运算符,即为扩展赋值运算符。
如:x+=5 x-=5 x/=5 x%=5 x*=5
字符串连接运算
使用"+"进行字符串连接
"+"可以实现字符串的连接,也可以实现字符串与其它数据类型的“相连”
int a=100;
String msg="a="+a;
System.out.println(msg);//a=100
msg=""+100+200;
System.out.println(msg);//结果而100200
msg=100+200+"";
System.out.println(msg);//结果为:300
条件运算(三目运算)
使用条件(三目)运算符
条件运算符又称"三目"运算符,其结构为:boolean 表达式? 表达式1:表达会2
条件运算符的规则如下:
-----先计算boolean 的表达式;
-----如果boolean表达式的值为true,整个表达式的值为表达式1的值;
-----如果boolean表达式的值为false,整个表达式的值为表达式2的值;
int a=100,b=200; int flag=a>b?1:1-;//flag的值为-1
条件(三目)运算符的嵌套
条件运算符可以嵌套使用,所谓嵌套使用指在条件表达式:boolean表达式?表达式1:表达式2 中的表达式1或表达式2也可以是三目表达式。
int a=-3; String r=a>0? "正数":(a==0?"0":"负数"); System.out.println(r);//结果为负数
分支结构
任何复杂的程序逻辑都可以通过"顺序","分支"。"循环"三种基本的程序结构实现。
程序可以在运行过程中,根据不同的条件运行不同的语句
if语句的执行逻辑
语句0;
if(逻辑表达式){
语句1;
语句2;
}
语句3;
1.执行语句0;
2.判断逻辑表达式的值:
若值为true,则执行if语句块中的语句;
若值为false,则不执行if语句块中的语句;
3.执行语句3.
if-else语句的执行逻辑
if(逻辑表达式){
语句1;
}else{
语句2;
}
语句3;
1.执行语句0;
2.判断逻辑表达式的值:
若值为true,则执行if语句块中的语句1;
若值为false,则不执行if语句块中的语句2;
3.执行语句3.
switch case语句
switch-case语句执行逻辑
switch case语句是一种特殊的分支结构,可以根据一个整数表达式的不同取值,从不同的程序入口开始执行。
switch(整型表达式){
case 整型常量值1:语句1;
case 整型常量值2:语句2 ;
..............
default:语句n;
}
switch-case和break联合使用
通常case1,case2,,,caseN对应完全不同的操作,可以和break语句配合使用,执行完全相应语句后即退出switch块,不继续执行下面的语句。
switch(整型表达式){
case 整型常量值1:语句1;break;
case 整型常量值2:语句2 ;break;
..............
default:语句n;
}
注意:break语句的作用在于跳出switch结构
switch-case的优势
switch-case常常和break语句结合使用实现分支的功能。
switch-case在实现分支功能时和if-else的主要区别在于switch-case结构的效率更高,结构更清晰。
从JDK7.0开始,switch-case支持字符串表达式。
循环结构
循环是程序设计语言中反复执行某些代码的一种计算机处理过程,是一组相同或相似语句被有规律的重复执行。
循环的要素:
---循环体(相同或相似的语句)
---循环条件(继续执行循环的条件,在某些情况下循环条件以循环次数的方式体现)
while语句
while语句的执行逻辑
1.计算boolean表达式的值
2.如果值为true则执行语句块;语句块执行完后再次判断boolean表达式的值,如果为true则继续执行语句块;如此循环往复,知道boolean为false时退出while循环。
while(boolean表达式){ //boolean表达式结果为真时,执行语句块;否则退出
语句块 //被重复执行的操作
}
注意:一般情况下,循环操作中会存在使得循环条件不满足的可能性,否则将成为"死循环"。
while语句用于处理循环逻辑
int age=1; while(age<=100){ System.out.println("你好"); age++; } System.out.println("over");
使用break语句跳出循环
break用在循环体中用于退出循环
int x=0; while(x<10){ if(x==5){ break; } System.out.println(x); x++; } //输出结果为:0,1,2,3,4当x==5时,退出循环。
do-while语句
do-while语句的执行逻辑
1.先执行语句块
2.再计算boolean表达式,如果为true,再次执行语句块,如此循环往复,直到boolean表达式的值为false为止。
do{ //无论boolean表达式是否为true,都先执行一次语句块
语句块;
}while(boolean表达式);
while和do-while语句的区别:
-----while循环先判断再执行;
-----do-while循环先执行一次,再判断;
当初始情况不满足循环条件时,while循环一次都不会执行;do-while循环不管任何情况都至少执行一次;
注意:
while和do-while语句的不同仅仅是体现在第一次就不满足条件的循环中;如果不是这样的情况,while和do-while可以互换。
for语句
for语句的执行逻辑
for(表达式1;表达式2;表达式3){
语句块(循环体)
}
1.计算表达式 1的值;
2.计算表达式2(表达式2为逻辑表达式)的值,如果为true则执行循环体,否则退出循环;
3.执行循环体;
4.执行表达式3;
5.计算表达式2,如果为true则执行循环体,否则退出循环;
6.如此循环往复,直到表达式2的值为false.
int sum=0; for(int i=0;i<=100;i++){ sum+=i; } System.out.println("1到100的和为:"+sum);
for语句三个表达式特殊用法
1)表达式1位置内容为空时:
int sum=0; int i=1; for(;i<=10;i++){ sum+=i; } Sysetem.ouot.println("1到10的和为"+sum);
2)表达式3位置内容为空时:
int sum=0; for(int i=1;i<=10;){ sum+=i; i++; } Sysetem.ouot.println("1到10的和为"+sum);
3)表达式1,2,3位置内容均为空时:
for(; ; ){ //死循环 Sysetem.ouot.println("我要上班了....."); }
4)表达式1和3位置内容的多样化
for(int i=1,j=6;i<=6;i+=2,j-=2){ System.out.println("i,j="+i+","+j); }
循环中使用break语句
break用于循环语句或switch语句中;
break用于循环,可使程序终止循环而执行循环后面的语句,常常与条件语句一起使用。
int sum=0; for(int i=1;i<=100;i++){ if(sum>=400){ break; } sum+=i; }
循环中使用continue语句
continue只能用于循环中
其作用为跳出循环体中剩余语句而执行下一次循环
int sum=0; for(int i=1;i<=100;i++){ //统计总会时,跳过所有个位为3的 if(i%10==3){ continue; } sum+=i; }
循环问题
需要多次重复执行一个或多个任务的问题考虑使用循环来解决;
一般情况下,for循环使用最多,对于for循环结构,一定要分析出需解决业务的3部分:
-----循环变量初始状态
-----循环条件
-----循环变量的改变
循环问题定义--------“当”循环
循环语句的选择
---如果业务可以转换为"当..."这样的语句时,优先选择while语句来实现
---如果业务可以转换为"直到..."这样的句式时,优先选择do-while语句来实现
---如果业务中可以获取到一个确切的循环次数考虑for循环