Java语言基础(二)

Java语言基础

  比较运算符和逻辑运算符
    ※&& 和&的区别:首个判别式为假,则后边的判别式不进行判断,结果为false。
    ※|| 和|的区别:首个判别式为真,则后边的判别式不进行判断,结果为true。
    一个数异或同一个数两次,结果还是这个数。

class OperateDemo3

   {

     public static void main(String[] args)

     {

       /*

         比较运算符,运算结果必须为true或false

       */

       //System.out.println(3>2);//true

       //System.out.println(3==2);//false



       /*

         逻辑运算符的作用:

         用于连接两个boolean类型的表达式



         & 与

           运算特点:

             true&true=true;

             true&false=false;

             false&ture=false;

             false&false=false;

         | 或

           运算特点:

           true|true=true;

           true|false=true;

           false|true=true;

           false|false=false;

         ^ 异或

           运算特点:

           true^true=false;

           true^false=true;

           false^true=true;

           false^false=false;

         ! 非运算:判断事物的另一面

           !true=false;

           !false=true;

         &&

           和&的区别:首个判别式为假,则后边的判别式不进行判断,结果为false

         ||

           和|的区别:首个判别式为真,则后边的判别式不进行判断,结果为true

       */



       int x=3;



       System.out.println(x>2&x<5);//true

       System.out.println(x<2|x>5);//false

     }

   }

位运算符
    用于二进制位运算的符号

class OperateDemo4  

        {  

            public static void main(String[] args)  

            {  

                //System.out.println(6&3);  

                //System.out.println(6|3);  

                //System.out.println(~6);//取反操作,一般不用,结果为7  

      

                System.out.println(3<<2);//3左移2位,3*2^2  

                System.out.println(3>>1);//3右移1位,3/(2^1)      

            }  

        }  

>>>:无符号右移:数据进行右移时,高位出现的空位,无论原先最高位是什么,空位都用0补 ;   

高效的运算首选对二进制位进行操作;  

class OperateText  

    {  

        public static void main(String[] args)  

        {  

            //最有效率的方式算出2诚意8等于几  

            //System.out.println(2<<3);  

            int a=3,b=5;  

            System.out.println("a="+a+",b="+b);  

            /* 

            //对两个整数变量的值进行互换(不需要第三方变量) 

            //这种方式不要用,如果两个整数的数值过大,会超出int范围,会强制转换,数据会变化 

     

            a=a+b; //a=8 

            b=a-b; //b=8-5=3 

            a=a-b; //b=8-3=5 

            */  

      

            int a=3,b=5;  

            a=a^b; //a=3^5  

            b=a^b; //b=(3^5)^5=3  

            a=a^b; //a=(3^5)^3=5  

            System.out.println("a="+a+",b="+b);  

        }  

    }  

    在开发时,使用第三方变量实现值的交换,因为阅读性强

    三元运算符
    格式
    (条件表达式)?表达式1:表达式2
    如果条件为true,运算后的结果是表达式1;如果条件为false,运算后的结果是表达式2

class  OperateDemo5

   {

       public static void main(String[] args)

       {

           int x=3,y;

           y=(x>1)?100:200;

           System.out.println("y="+y);



           //获取两个整数中的较大值

           int  a=3,b=5;

           int max=a>b?a:b;

           System.out.println("max="+max);

       }

   }

    程序流程控制
        顺序结构,判断结构,选择结构,循环结构(同C++)
        三元运算符就是if else语句的简写格式,但存在其局限性。
        简写格式什么时候用?    当if else运算后有一个具体的结果时,可以简化成三元运算符。
        局部代码块可以定义局部变量的生命周期,局部变量在该代码块结束时消亡。
        switch(x)中,x的取值可以有四种类型:byte,short,int,char。
        if和switch的应用
            if:
                1.对具体的值进行判断
                2.对区间判断
                3.对运算结果是boolean类型的表达式进行判断

            switch:
                1.对具体的值进行判断
                2.值的个数通常是固定的
                对于几个固定的值判断,建议使用switch语句。因为switch语句会将具体的答案都加载进内存,效率相对高。

        do while 特点:无论条件是否满足,循环体至少执行一次
        当对一个条件进行一次判断时,可以使用if语句,
        当对一个条件进行多次判断时,可以使用while语句
        注意:
                        在使用循环时,一定要明确哪些语句需要参与循环,哪些不需要
                        循环通常情况下,需要定义条件,需要控制次数
for语句

class ForDemo

 {

     public static void main(String[] args)

     {

         int x=1;

         for(System.out.println("a");x<3;System.out.println("0")) //条件是表达式即可,不一定是for(int i=0;i<=10;i++)这种形式;如果需要不同表达式,则用逗号隔开

         {

             System.out.println("d");

             x++;

         }

     }

 }

    for和while的特点:
    1.for和while可以互换
    2.格式上的不同,在使用上有点区别
     如果需要通过变量来对循环进行控制,该变量值作为循环增量存在时,区别就可以体现出来

class ForTest

   {

       public static void main(String[] args)

       {

           //打印1~10十个数字

           int x=1;

           while(x<11)        //while结束后,x还驻留在内存中

           {

               System.out.println("x="+x);

               x++;

           }

           for (int y=1;y<=10 ;y++ )    //for循环结束,y消亡

           {

               System.out.println("y="+y);

           }

       }

   }

嵌套循环练习

class ForForTest

   {

       public static void main(String[] args)

       {

           /*

           输出如下图形

           *****

           ****

           ***

           **

           *

           */

           for(int x=1;x<=5;x++)

           {

               for(int y=5-x;y>=0;y--)  //使用x控制y的值

               {

                   System.out.print("*");

               }

               System.out.println();   //每次行的输出结束后,换行

           }

           System.out.println("--------------");



           /*

           *

           **

           ***

           ****

           *****

           */

           for (int x=1;x<=5 ;x++ )

           {

               for (int y=1;y<=x ;y++ ) //使用x控制y的范围

               {

                   System.out.print("*");

               }

               System.out.println();   //每次行的输出结束后,换行

           }

           System.out.println("--------------");



           /*

           54321

           5432

           543

           54

           5

           */

           for (int x=1;x<=5 ;x++ )

           {

               for (int y=5;y>=x ;y--)

               {

                   System.out.print(y);

               }

               System.out.println();

           }

           System.out.println("--------------");



           /*

           1

           22

           333

           4444

           55555

           */

           for (int x=1;x<=5 ;x++ )

           {

               for (int y=1;y<=x ; y++)

               {

                   System.out.print(x);

               }

               System.out.println();

           }

       }

   }

 
 

class  ForFor99

   {

       public static void main(String[] args)

       {

           /*

           1*1=1

           1*2=2   2*2=4

           1*3=3   2*3=6   3*3=9

           ……

           */

           for (int x=1;x<=9 ;x++ )

           {

               for (int y=1; y<=x;y++ )

               {

                   System.out.print(y+"*"+x+"="+y*x+"\t");//使用制表符'\t'能够实现输出时对齐

               }

               System.out.println();

           }



           /*

           \n 回车

           \t 制表符

           \b 退格

           \r 按下回车键

           windows系统中回车符其实是由两个符号组成的\r\n

           linux中回车符是\n

           */

       }

   }

 
 

class BreakContinueDemo   

    {  

        public static void main(String[] args)   

        {  

            /* 

            break 跳出 

            作用的范围:只在switch语句和循环语句中使用 

            ※当break语句单独存在时,下面不要定义其他语句,因为执行到break语句时跳出,后面的语句不会执行 

            break跳出当前循环,如果出现了循环嵌套,break想要跳出指定的循环,可以通过标号来完成 

            */  

            for (int x=0;x<3 ;x++ )  

            {  

                System.out.println("x="+x);  

                break;  //第一次循环的最后跳出,只输出一次x=0  

            }  

            System.out.println("---------------");  

              

            loop1:for (int x=0;x<3 ;x++ )    //对for循环起名  

            {  

                loop2:for (int y=0;y<4 ;y++ )  

                {  

                    System.out.println("x="+x);  

                    break loop1;    //在内循环中第一次执行输出语句后,直接跳出外循环loop1,结果只输出一次x=0  

                }  

            }  

            System.out.println("---------------");  

      

            /* 

            continue 继续 

            作用的范围:循环结构 

            作用:结束本次循环,继续下次循环 

            */  

      

            for (int x=0;x<11 ;x++ )  

            {  

                /* 

                在进入循环后,先执行continue语句,跳出当前循环进行下次循环 

                continue; 

                 

                System.out.println("x="+x); //该语句无法执行,编译报错。 

                */  

                if (x%2==0)     //x为偶数时,不输出,继续下次循环  

                {  

                    continue;  

                }  

                System.out.println("x="+x);  

            }  

            System.out.println("---------------");  

              

            loop1:for (int x=0;x<3 ;x++ )    //对for循环起名  

            {  

                loop2:for (int y=0;y<4 ;y++ )  

                {  

                    System.out.println("x="+x);  

                    continue loop1; //在内循环中第一次执行输出语句后,跳到外循环继续执行,输出x=0,x=1,x=2  

                }  

            }  

        }  

    } 

你可能感兴趣的:(java语言)