Java语言基础(2)

运算符和表达式

赋值运算

使用“=”进行赋值运算,用于对变量赋值。关于赋值运算符,除了将右边的表达式计算出来赋给左边以外还具备如下特点:赋值表达式本身也有值,其本身之值即为所赋之值。

使用扩展赋值表达式

在赋值运算符"="前加上其他运算符,即为扩展赋值运算符。

如: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循环

原文地址:https://www.cnblogs.com/peachwang/p/7388168.html