第三天 基础学习

                                                  

                黑马程序员  第三天笔记 

            <a href="http://www.itheima.com" target="blank">java培训</a>

1.算数运算符

+,—,*,/, % ,++,——

取模运算的特点:

左边%右边

如果左边小于右边,结果就是左边

 左边等于右边,     结果是0

 负数取模,结果是正还是负,看左边

 只有整数的话,结果还是整数,不会出现浮点数。

算数运算符中的自增和自减:++ ——

如果一个变量,自己进行++操作,无论符号写在变量前面还是变量后面,自增一,没有区别

参与其他数据运算,++写在变量前面,自己+1,赋值给别的变量

                  ++写在变量后面,先将自己的值赋给别的变量,然后自己+1

  代码演示:

  

 

结果:

 

2.赋值运算符

= ,+=,—=,*=,/+,%=;

常见问题:

s+=1 等价于 s = (short)(s+1);

代码演示:

 

结果:

 

代码演示:

 

结果:

 

 

3.关系运算符

计算结果全部都是布尔类型,结果只有两个可能,true或者false

== 比较符号两端的数据是是否相等,如果相等则结果是true,要求符号两边的数据类型必须一致 (== 和= 的区别非常大)

!= 比较符号两端的数据是是否相等,如果不相等则结果是true,要求符号两边的数据类型必须一致

< 比较符号左边的数据是不是小于符号右边的数据,如果小于,则为true

  • 比较符号左边的数据是不是大于符号右边的数据,如果大于,则为true

<=比较符号左边的数据是不是小于或者等于符号右边的数据,如果小于,则为true

>=比较符号左边的数据是不是小于或者等于符号右边的数据,如果大于,则为true

代码演示:

 

结果:

 

4.逻辑运算符

作用是:连接两个布尔类型的表达式

运算符号的左右两边double必须是布尔类型,运算结果于是布尔类型

& 与

   符号两端,有false,结果就是false,

   符号两端,都是true,结果就是true

   即:一假全假,全真才为真

| 或

  符号两端如果有true,结果就是true

符号两端都是flase,结果就是false

^异或

 符号两端相同则是false

 符号两端不同则是true

!非

     取反,true变false,false变true

     代码演示:

    

结果:

 

   

 &&短路与

  &&和&符号的运算结果一致

  &&的左边为false,右边不计算,直接得出结果

 ||短路或

 ||与|的运算结果一致,||的左边为true,右边不进行计算

 代码演示:

 

运行结果:

 

5.位运算符

位运算,一个数的二进制位的运算

<< 左移运算,将二进制向左移动多少个位置

就是乘以被移动数*2的位置次方

>> 右移运算,将二进制向右移动多少个位置

就是除以被移动数*2的位置次方

  >>>无符号右移:无论最高位是什么,补0

  &

操作二进制位的时候,和逻辑运算中的结果是相同的

0看成是false 1看成是true

  |

操作二进制位的时候,和逻辑运算中的结果是相同的

0看成是false 1看成是true

^

操作二进制位的时候,和逻辑运算中的结果是相同的

0看成是false 1看成是true

相同是0,不同是1

^ 一个数连续异或同一个数2次,结果是原来的数

~ 反码

对一个二进制取反

代码演示:

 

结果:

 

6.三元运算符

   格式很重要

   (条件表达式——结果是布尔类型)?结果1:结果2;

     如果布尔类型的结果是真,则是结果1,否则结果为2

     接受结果运算符的变量,要和运算符计算结果数据类型一致

代码演示:

 

结果:

 

7.键盘录入数据

A.导入包 import java.Util.*;放在代码第一行

B. 创建Scanner类的对象,传递字节输入流

Scanner sc=new Scanner(System,in);

   C.使用Scanner类中已经定义好的方法,接受键盘输入

     NextInt 接受int类型数据

     NextLine 接受任意类型参数

代码表示:

结果:

 

 

8.流程控制语句

A.顺序结构

代码从开始向下顺序执行

B.选择结构

C.循环语句

  9.if语句

 If表示一种判断语句,有三种格式

A.  单独的if语句

      格式:

      If(条件结果必须布尔类型){

             如果条件结果是true,执行大括号之间的所有代码

      }

            大括号问题:如果执行if语句只有一行代码,则大括号可以省略。

            代码演示:

           

B. if….else语句

   格式

  If(条件结果必须布尔类型)

{

   如果条件结果是true,运行if大括号中的所有代码

}else

{

如果条件结果是false,运行else大括号中的所有代码

}

代码演示:

   

C. if….else if……else if…..else语句

格式:

  If(条件结果必须布尔类型)

{

   如果条件结果是true,运行if大括号中的所有代码

}else  if(条件结果必须布尔类型)

{

如果条件结果是true,运行if else大括号中的所有代码

} else  if(条件结果必须布尔类型)

{

如果条件结果是true,运行 if else大括号中的所有代码

}else

{

上面所有结果都不成立,则执行该语句

}

代码演示:

   

结果:

 

10. 选择语句switch

       格式

       switch(表达式){

          case 常量1:

          执行的语句;

          break;

case 常量2:

          执行的语句;

         break;

 default:

          执行语句;

         break;

       }

       switch语句的执行过程

       Switch语句中的表达式,和 case后面的常量进行匹配

        如果相等,就运行case后面的执行语句,执行到break的时候,整个Switch结束

  假如,switch语句中的表达式没有任何的case匹配,运行default后的执行语句

执行到break的时候,整个Switch结束

代码演示:

 

结果:

 

       对于switch中有面试题:

         switch(数据类型)

         和JDK版本有关系

          JDK1.0-1.4 支持 byte short int char

          JDK1.5-1.6 支持 byte short int char enum(枚举)

          JDK1.7     支持 byte short int char enum(枚举) 字符串String

        case 后面只能一个常量

        case 常量不能重复

        default,可以不写,但不建议,请你写在最后

        break,不要省略,发生case穿透现象

代码演示:

   

结果:

 

原文地址:https://www.cnblogs.com/liman/p/4336243.html