[第三章]第二节、流程控制和运算符

来源:互联网 发布:淘宝退定金 编辑:程序博客网 时间:2024/05/18 10:18

第二节、流程控制和运算符

 一、流程控制

程序控制语句:

              (1) if  else 语句

              if (a>b){

                     a=0;

              }else if(a>c){

                     a=1;

              }else{

                     a=-1;

              }

 

             if(a!=b) a=b;        // if else语句后仅有一条语句时,可以省略大括号

              else  a=c;        // 但为了清晰和防止出错,一般都如第一个例子使用大括号

 

              (2)switch

                     switch (expression) {   // expression参数 必须为 byteshortintchar类型。

                            case value1:              // value1—valueN必须是与expression兼容,且互不相等的常量

                                   //do something here

                                   break;              //break语句是可选的。

case value2:

//do something here

//此处省略break语句

                            case value3:

                                   //do something here

                            break;

                            default:           //default为可选,如果expression的值与value1-N不匹配则执行default语句。

                            a=0;

              }

 

(3)while

              int counter=0;             //用来计数的变量

              boolean condition=true;

              while ( condition ) {        //判断condition是否为true,如否则结束while循环。

                     counter++;

                     if(counter=10){

                            condition=false; // counter=10时,将condition设置为false

                     }

              }

              /**       while循环的循环体可以为空

               * 因为一个空语句(null statement,仅由一个分号组成的语句)Java的语法上是合法的。

               */

package Examples;

class Demo {    

              public static void main(String[] args){

                     int a,b;

                     a=100;

                     b=200;   

                     while(++a<--b);   //判断condition时,a先自加1b自减1,然后再进行ab的比较

                                                 //另外请注意最后必须用分号结束

                            System.out.println("Midpoint is " + a);

                     }

}           

 

       (4)do-while             

              int counter=0;

              boolean condition=false;

              do{                //执行do-while循环时,会先执行循环体再判断condition

                     counter++

                     if(condition){

                            System.out.println(“ “+(counter+1)+”!”);

                     }

              }while( condition );  //注意这里有分号

 

       (5)for     

//要注意for中循环初始化部分和反复部分声明的变量不能同for循环所在方法内的变量同名。例:

package Examples;

public class ForDemo{

       public void forMethod(){

              // int i=0;     //当这个声明语句没有被注释掉的话,那么编译时就会出现错误。

 

              for( int i=0; i<10 ; i++){  // 括号中分别为(初始化部分;条件判断;反复部分)

                     System.out.println("number"+i);

              }

              for(int i=10,j=20;i<j;i++,j--){       //循环中初始和反复部分可以声明多个变量,

                     System.out.println("I is :"+i+" , J is :"+j);  

              }

       }

       public static void main(String[] args){

              ForDemo fd=new ForDemo();

              fd.forMethod();

       }

}

 

       (6)跳转语句:

       break:  1.终止一个语句序列;2.退出当前循环;3.类似goto的作用,如下例所示

 

       LABEL:   {

int a,b;

a=10;

b=2a;

for( int i=0;i<10;i++){

                                   for(int j=0;i<10;j++){

                                          if(i==5&&j==5)  break LABEL;  //使用break退出LABEL代码块

                                   }

                            }

                     }

 

       continue:  1.强迫一个循环提早反复,即忽略循环体中continue语句后面的代码,直接跳到condition处。

                       2.可以指定一个标签来说明继续哪个包围的循环,如下例所示

              package Examples;

public class ContinueDemo{

                     public static void main(String[] args){

                            String s;

          OUTER:  for( int i=1;i<10;i++){ // 19

                                   for(int j=1;j<10;j++){

                                          if(j>i){

                                          System.out.println();  //打印一个空行并换行

                                          continue OUTER;

                                          }

                                   s=(i*j)>9?String.valueOf(i*j):(" "+String.valueOf((i*j)));

                                   System.out.print("  "+i+"x"+j+"="+s);

                                   }

                            }

                     }

}

编译后输出的是一个99乘法表。

 

       return:  return语句用来明确地从一个方法返回.

 

 

       二、运算符

       (1)算术运算符: 算术运算符不能用在boolean类型上,但可用在char类型,

              +  -  *  /              加,减,乘,除   //整数除法运算中所有余数都会被舍去

              %                         模运算           //模运算结果是整数除法的余数

              ++  --                 递增,递减    //在前,则先自加(减)再运算,在后则相反

              +=   -=   *=  /=  %=    加法赋值,减法赋值,乘法赋值,除法赋值,模运算赋值

                                                        //例:a+=10 等同于a=a+10a%=2 等同于a=a%2

       (2) 位运算符:

              ~  &  |  ^    按位非(NOT),按位与(AND),按位或(OR),按位异或(XOR

                                   //非:每位取反; 与:两位均1 1;或:有11;异或:不同为1

              >>  >>>  <<  右移   右移,左边空出的位以0填充; 左移

                                   //移位符号右边数值指定移动位数 value>>num;   -1右移的结果总是-1

              &=   |=  ^=   按位与赋值, 按位或赋值 按位异或赋值

              >>= >>>= <<=  右移赋值; 右移赋值,左边空出的位以0填充; 左移赋值

       3)关系运算符:

              = =   !=  >  <  >= <=     等于,不等于,大于,小于 ,大于等于, 小于等于

 

       4)布尔逻辑运算符:

              &  |  ^          逻辑与,逻辑或,异或

//无论符号左边表达式值为truefalse都会对右边表达式进行运算

              &&  ||  ! 短路与,短路或,逻辑反 //&&时,当符号左边为false,则不用求符号右边表达式

                                                                        //||时,如符号左边为true,则不用求符号右边表达式

              &= |=  ^=    逻辑与赋值,逻辑或赋值,逻辑异或赋值

              ==  !=          相等,不等

              ? :          三元运算符(if-then-else)例 i=i>0? i : -1; //i>0i=i;反之i=-1

        (5)运算符优先级

              高:

                    ( )              [ ]           .

                     ++          --              ~            !

                     *              /             %

                     +              -

                     >>          >>>        <<

                     >              >=          <            <=

                     = =            !=

                     &

                     ^

                     |

                     &&

                     | |

                     ? :

                     =              op=

              低:

    (6)其他运算符

        instanceof      要求运算符左侧的操作数是一个对象或数组值,

右侧操作数是一个数据类型的名称,

如果左侧的操作数是右侧数据类型的一个实例,则true,反之false

Null不是任何对象的实例

        if(new int[] {10} instanceof int[])

            System.out.println(“True!”);

       

    (7)字符转义序列:

              /ddd               八进制字符(ddd

              /uxxxx              十六进制Unicode码字符

              /’                   单引号

              /”                   双引号

              //                   反斜杆

              /r                   回车键

              /n                  换行

              /f                   换页

              /t                   水平制表符

              /b                  退格

原创粉丝点击