zoukankan      html  css  js  c++  java
  • java(运算符,控制流程语句,函数 )

    运算符

    数据类型转换:

    小数据类型-------->大数据类型(自动类型转换)

    大数据类型--------->小数据类型(强制类型转换)

    强制类型转换的格式:

    小数据类型  变量名 = (小数据类型)大数据类型

    注意的细节:

    1.凡是byte、short、char数据类型数据在运算的时候都会自动转换成int类型的数据再运算。
    2.两个不同数据类型的数据在运算的时候,结果取决于大的数据类型。

    class Demo2 {
        public static void main(String[] args) {
            /*
            byte  b=  11;   // 一个字节
            short s = b; // 把b变量存储的值赋予给s变量。2字节
            int i = s;   // i是4字节
            long l = i;  // l 是8个字节。 
            System.out.println(l);
            int i = 128;  //4个字节
            byte b =(byte) i;  // 1个字节
            System.out.println(b);  // -128        
            //如果是负数,那么最高位肯定是1, 正数的二进制位的最高位是0。
            System.out.println(Integer.toBinaryString(-7));  //sun给我们提供一个功能 Integer.tobinaryString()  查看一个数据的二进制数据形式的。
            //   11111001(补码)
            凡是byte、short 、 char数据类型数据在运算的时候都会自动转换成int类型的数据再运算。       
            byte b1 =1;
            byte b2 = 2;
            byte b3 = (byte)(b1+b2);
            System.out.println(b3); //3   
            System.out.println('a'+1); //98          
            两个不同数据类型的数据在运算的时候,结果取决于大的数据类型
            int i =10;
            long l = 20;
            i = (int)(i+l); 
            System.out.println(i);
            */    
            int i = 10;  //
            byte b = i;  // 一个整数没有加上任何标识的时候,默认是int类型的数据。
            //10 是一个常量, 编译器在编译的时候就能够确认常量的值了,byte b = 10,在编译到的时候
            //java编译器就会检查到10并没有超出byte的表示范围,所以允许赋值。
            //java编译器在编译 的时候并不能确认变量所存储的值,变量存储的值是在运行的时候才在内存中分配空间 的。
            System.out.println(b);    
        }
    }
    

    算术运算符:

    + (正数、加法、连接符)连接符的作用:让任何的数据都可以与字符串进行拼接。如果+号用于字符串的时候,那么+号就是一个连接符,并不是做加法功能了。

    连接符要注意:任何类型的数据与字符串使用连接符连接,那么结果都是字符串类型的数据。

    ++(自增): 自增就是相当于操作数+1.

    前自增:++位于操作数的前面。比如:++a;

    前自增:先自增,后使用。

    后自增: 先使用,后自增。

    --(自减):操作数-1.

    前自减: --位于操作数的前面。--操作数

    前自减:先自减,后使用。

    后自减:--位于操作数的后面。 操作数--;

    后自减: 先使用,后自减。

    赋值运算符:

    = (赋值运算符)
    +=
    -=
    *=
    /=
    %=

    比较运算符:比较运算符的结果都是返回一个布尔值的。

    != (不等于)
    > (大于)
    < (小于)
    >= (大于等于)
    <= (小于等于)

    ==用于比较两个基本数据类型数据的时候,比较的是两个变量所存储的值是否一致.
    ==用于比较两个引用类型变量的数据时候,比较的是两个 引用类型变量所记录的内存地址是否一致.

    逻辑运算符:逻辑运算符的作用是用于连接布尔表达式的。

    amp; (与,并且)
    规律: 只有左右变量同时为true,那么结果才是true,否则就为false。

    | (或,或者)

    规律:只要两边的布尔表达式有一边为true,那么结果就为true,只有两边同时为false 的时候,结果才是false.

    ^ (异或)

    规律:只要两边的布尔表达式 结果不一致,那么结果就为true,如果左右两边 的布尔表达式一致,那么就为false.

    ! (非)

    =================

    && (短路与双与)

    短路与和单与符号的相同与不同点:

    相同点:短路与和单与运算的结果是一样的。

    不同点:使用短路与的时候,如果左边的布尔表达式为false,则不会在运算右边的布尔表达式,从而提高了效率。使用单与的时候,即使发现左边的布尔表达式为false,还是会运算右边的布尔表达式的。只有左边的布尔表达式为false时,双与的效率才要高于单与的.

    || (短路或双或)

    短路或与单或的相同点与不同点:

    相同点:运算的结果是一致的。
    不同点:使用短路或的时候,当发现左边的布尔表达式为true时,则不会运算右边的布尔表达式。使用单或的时候 发现左边的布尔表达式为true,还是会运算右边布尔表达式。

    位运算符:位运算符就是直接操作二进制位的。

    amp;(与)
    |(或)
    ^(异或)
    规律:如果操作数A连续异或同一个操作数两次,那么结果还是操作数A。

    位运算符可能会出现的笔试题目:

    1. 交换两个变量的值,不准出现第三方变量。
    2. 取出一个二进制数据的指定位数。要求读取该二进制数据的低4位
      00000000-00000000-00010100-01001101
      amp; 00000000-00000000-00000000-00001111
      --------------------------------------------------------------
      00000000-00000000-00000000-00001101

    移位运算符:

    <<(左移)
    规律:一个操作数进行左移运算的时候,结果就是等于操作数乘以2的n次方,n就是左移的位数.

    3<<1 = 3*2(1) = 6;
    3<<2 = 3*2(2) = 12
    3<<3 = 3*2(3) = 24

    >>(右移)

    规律:一个操作数在做右移运算的时候,实际上就是等于该操作数除以2的n次方,n就是移的位数。

    3>>1 = 3 / 2(1) = 1
    3>>2 = 3 / 2(2) = 0

    >>>(无符号右移) :

    无符号右移与右移的区别:进行右移运算的时候,如果操作数是一个正数,那么左边的空缺位使用0补,如果操作数是一个负数,那么左边的空缺位使用1补。而使用无符号右移的时候,不管是正数还是负数都统一使用0补。

    三元运算符(三目运算符)

    格式:
    布尔表达式?值1:值2;

    三元运算符要注意的细节:
    使用三元运算符的时候,一定要使用该表达式返回的结果,或者是定义一个变量接收该表达式返回的结果。

    控制流程语句

    控制流程语句之(if)判断语句

    格式1:适用于一种情况使用。

    if(判断的条件){
        //符合条件执行的代码;		
    }
    

    格式2:适用于两种情况下去使用的。

    if(判断条件){
        //符合条件执行的代码
    }else{
        //不符合条件执行的代码;
    }
    

    格式二作用相当于三元运算符:布尔表达式?值1:值2;

    格式三:适用于多种情况下去使用的。

    if(判断条件1){
        //符合条件1执行的代码
    }else if(判断条件2){
        //符合条件2执行的代码
    }else if(判断条件3){
        //符合条件3执行的代码
    }......else{
        //都不符合上述 的条件执行的代码	
    }
    

    if语句要注意的细节:

    1. 如果符合条件后只有一个语句需要执行,那么可以省略大括号。但是建议不要省略,因为结构不清晰。
    2. if语句的判断条件后不能添加分号,否则会影响到执行的效果的。

    控制流程语句之----switch选择判断语句

    switch语句的格式:

    switch(你的选择){
        
        case 值1:
            符合值1执行的代码
            break;
        case 值2:
            符合值 2执行的代码
            break;
        case 值3:
            符合值 3执行的代码
            break;
        case 值4:
            符合值 4执行的代码
            break;
        ......
    
        default: 
            你的选择都符合上述的选项时执行的代码;
            break;
    }
    

    switch语句要注意的事项:

    1. switch语句使用的变量只能是byte、 char、 short、int、 String数据类型,String数据类型是从jdk7.0的时候开始支持的。
    2. case后面跟 的数据必须是一个常量。
    3. switch的停止条件:
      switch语句一旦匹配上了其中的一个case语句,那么就会执行对应的case中的语句代码,执行完毕之后如果没有遇到break关键字或者是结束switch语句的大括号,那么switch语句不会再判断,按照代码的顺序从上往下执行所有的代码。直到遇到break或者是结束siwitch语句的大括号为止。
    1. 在switch语句中不管代码的顺序如何,永远都是会先判断case语句,然后没有符合的情况下才会执行default语句。

    if--else if---else if 语句与switch语句非常的相似:
    switch语句的优点:switch语句的结构清晰。switch缺点:如果 判断的条件是一个区间范围的,使用switch操作就非常的麻烦了。

    class Demo2{
    	public static void main(String[] args)  {
    		int option = 1;	//定义一个变量存储你的选择
    		switch(option){
    			case 1:
    				System.out.println("java");
    				
    			case 2:
    				System.out.println("C#");
    				
    			case 3:
    				System.out.println("javascript");
    				
    			case 4:
    				System.out.println("android");
    			default:
    				System.out.println("你的选择有误");				
    		}
    		/*
    		String str = "world";
    		switch(str){
    			case "hello":
    				System.out.println("hello");
    				break;
    			case "world":
    				System.out.println("world");
    				break;
    		}
    		*/
    	}
    }
    

    循环语句----while循环语句

    while循环 语句的格式:

    while(循环的条件){
    	//循环语句;
    }
    

    while循环语句要注意的事项:

    1. while循环语句一般是通过一个变量控制其循环的次数。
    2. while循环语句的循环体代码如果只有一个语句的时候,那么可以省略大括号。但是也是不建议大家省略。
    3. while循环语句的判断条件后面不能跟有分号,否则会影响到执行的效果。

    控制流程语句----do while循环语句

    格式:

    do{
    	//...
    }while(判断条件);
    

    while循环语句与do-while循环语句的区别:
    while循环语句是先判断后执行循环语句的,do-while循环语句是先执行,后判断。不管条件是否满足至少会执行一次。

    11控制流程语句之---for循环语句

    for循环语句的格式:

    for(初始化语句;判断语句;循环后的语句){
        //循环语句;
    }
    

    for循环语句 要注意的事项:

    1. for(;;)这种写法是一个死循环语句,相当于while(true);
    2. for循环语句的初始化语句只会执行一次,只是在第一次循环的时候执行而已。
    3. for循环语句的循环体语句只有一句的时候,可以省略大括号不写。但是不建议省略。
    class Demo13 {
    	public static void main(String[] args) 
    	{
    		for(int i = 0 ; i< 5 ; i++){
    			for(int j = 0 ; j<=i ; j++){ //控制列数 
    				System.out.print("*");
    			}
    			//换行
    			System.out.println();
    		}
    	}
    }
    

    转义字符:特殊字符使用””把其转化成字符的本身输出,那么使用””的字符称作为转移字符。

    常见的转义字符有:

    	Backspace (退格键)
    		Tab 制表符(制表符的作用就是为了让一列对齐) 一个tab一般等于四个空格。
    
    	换行
    
    	回车  把光标移动到一行的首位置上。
    

    注意: 如果是在windows系统上操作文件的时候需要换行,是需要 一起使用的。如果是在其他的操作系统上需要换行,仅需要 即可。

    break关键字

    break适用范围:只能用于switch或者是循环语句中。

    break作用:

    1. break用于switch语句的作用是结束一个switch语句。
    2. break用于循环语句中的作用是结束当前所在的循环语句。

    continue关键字

    continue的适用范围:continue只能用于循环语句。
    continue的作用:continue的作用是跳过本次的循环体内容。继续下一次。

    continue要注意的事项:

    1.在一种情况下,continue后面不能跟有其他语句,因为是永远都无法执行到。
    2.continue 也可以配合标记使用的。

    函数(方法):

    函数的作用:提高功能代码的复用性。

    函数的定义格式:

    修饰符  返回值类型  函数名(形式参数..){
    	需要被封装的功能代码;
    	return 结果;
    }
    
    public static int add(){
        int a =2;
        int b =3;
        return a+b;
    }
    

    修饰符: public static

    返回值类型:int。返回值类型就是指函数运行完毕后,返回的结果的数据类型。

    注意:某些函数是没有结果返回给调用者的,那么这时候返回值类型是void。

    函数名:add

    函数名的作用:如果需要调用该函数就需要使用的函数名。 函数名只要符合标识符的命名规则即可。

    函数名的命名规范:首单词全部小写,其他单词的首字母大写,其他小写。

    形式参数:如果一个函数在运行的时候,存在着数据是要调用者确定 的,那么这时候就应该定义形式参数。

    return : 把一个结果返回给调用者。

    函数的特点:

    1. 函数定义好之后,是需要被调用才会执行的。main函数是有jvm调用的,不需要我们手动调用。
    2. 函数定义好之后是需要被调用才会执行的。
    3. 如果一个函数没有返回值返回给调用者,那么返回值类型必须是使用void表示。
    class Demo3 {
    	public static void main(String[] args) {
    		//String result = getGrade(189);
    		//System.out.println(result);
    		print(7);
    	}
    	//需求2: 定义一个函数打印一个乘法表,不需要返回任何数据。 
    	public static void  print(int row){
    		for(int i = 1 ; i<= row ; i++){
    			for (int j = 1 ;j<=i  ;j++ ){
    				System.out.print(i+"*"+j+"="+i*j+"	");
    			}
    			//换行
    			System.out.println();
    		}
    	}
    	//需求1: 定义一个函数判断一个分数的等级,把分数的等级返回给调用者。
    	public static String getGrade(int score){
    		String grade = "";	//定义一个变量存储等级
    		if(score>=90&&score<=100){
    			grade = "A等级";
    		}else if(score>=80&&score<=89){
    			grade = "B等级";
    		}else if(score>=70&&score<=79){
    			grade = "C等级";
    		}else if(score>=60&&score<=69){
    			grade = "D等级";
    		}else if(score>=0&&score<=59){
    			grade = "E等级";
    		}else{
    			grade = "补考等级";
    		}
    		return grade;	//把等级返回给调用者
    	}
    }	
    

    注意:如果一个函数的返回值类型是具体的数据类型,那么该函数就必须要保证在任意情况下都保证有返回值。(除了返回值类型是void以外)

    return 关键字的作用:

    1. 返回数据给函数的调用者。
    2. 函数一旦执行到了return关键字,那么该函数马上结束。(能结束一个函数)

    注意:一个函数的返回值类型 是void,那么也可以出现return关键字,但是return关键字的后面不能有数据。

    break关键字与return关键字的区别:

    1.break关键字是结束一个循环。
    2.return关键字是结束一个函数。

    函数的重载:在一个类中出现两个或者两个以上的同名函数,这个称作为函数的重载。

    函数重载的作用:同一个函数名可以出现了不同的函数,以应对不同个数或者不同数据类型的参数。

    函数重载的要求:

    1.函数名一致。
    2.形参列表不一致(形式参数的个数或者是对应的数据类型不一致)。
    3.与函数的返回值类型是无关的。

    class Demo3 {
    	public static void main(String[] args) {
    		//System.out.println("Hello World!");
    		//add1(1,2);
    		add(1,2.0);
    	}
    
    // 这些函数都是在做加法运算。
    	public static double add(int a, int b) {
    		System.out.println("两个参数的总和: "+ (a+b));
    		return 3.14;
    	}
    	
    	//重复定义
    	public static int add(int a, double b) {
    		System.out.println("double参数的总和: "+ (a+b));
    		return 12;
    	}	
    /*
    	public static void add(int a , int b , int c){
    		System.out.println("三个参数的总和: "+ (a+b+c));
    	}
    
    	public static void add(int a , int b , int c,int d){
    		System.out.println("四个参数的总和: "+ (a+b+c+d));
    	}
    */
    }
    
  • 相关阅读:
    区域赛
    kd树的创建和求最近邻
    Fliptile POJ
    第六周作业
    第四次作业
    第三次作业
    第二周作业
    第一次作业
    董雅洁 我的第0次作业
    21 UI_布局 之 线性布局 xml配置方式
  • 原文地址:https://www.cnblogs.com/intelwisd/p/8038764.html
Copyright © 2011-2022 走看看