java/ 运算符/流程控制语句

一、运算符

1、不同类型之间的数据:数据类型的默认提示

 byte,short,char 三个之间相互不转换的,但是一旦参与运算,都默认转换转换成int类型
 强制类型转换:(不建议使用,损失精度)
 目标数据类型   变量名 = (目标数据类型)(变量值);

2、字符串拼接符:

 字符串+(字符串拼接符)任何数据=字符串    
  +:不仅指的是运算符,还可以去当做字符串拼接符号去使用!

3、变量的三要素及其分类:

变量的三要素:数据类型、变量名、初始化值

数据类型的分类:

(1)基本数据类型

a.整数类型:(整数默认类型为int类型)

byte:字节类型                          1字节                         -128~127

short:短整型                             2字节

int:   整数类型                           4字节

long:长整型                              8字节

b:浮点类型(默认类型为double类型)

float:单精度                                 4字节

double:双精度                              8字节

c:字符型       char                          2字节

d:布尔类型   boolean(true/false)                       1字节

4、运算符:

(1)算术运算符

基本算术运算符:   +,    -,    *,   /(取整),      %(取余)

扩展的算术运算符:++或者--
 单独使用: 无论++或者--再数据前还是数据后,都是自增1或者自减1
参与运算使用:   如果++或者--再数据的前面,先自增或者自减,再参与运算
                       如果++或者--再数据的后面,先运算,再进行自增或者自减

(2)比较运算符

比较运算符: >,    >=,    <,   <=,     ==(区分赋值=)

(3)赋值运算符

  基本的赋值运算符:=
 扩展的赋值运算符: +=,     -=,      *=,      /=,     %=

(4)逻辑运算符

基本逻辑运算符:&:逻辑与   |:逻辑或   ^(逻辑异或)  !(逻辑非)
      结论:
 逻辑&: 有false,则false
 逻辑或|:有true,则true
逻辑异或:^:相同则为false,不同则为true
 简单记:(男女关系) 男男  男女  女男  女女
 逻辑非!:非true则false,非false,则true,偶数个是他本身

扩展的逻辑运算符:
     逻辑双与:&&
     逻辑双或:||

面试题:  逻辑双与&& 和逻辑单与&的区别?
 *   a:共同点:效果是一样的
 *   b:逻辑双与&& ,如果左边的表达式如果是false,那么右边不执行(具有短路效果)
 *      逻辑双|| :如果左边的表达式是true,那么右边不执行(具有短路效果)
 * 实际开发中:
 *    逻辑双与&& 用的是最多的!

5.三目运算符(  ?  :  )

执行流程:
       首先判断表达式是否成立,如果比表达式成立,就执行true的结果,否则,false的结果;

6、键盘录入

键盘录入的步骤:
(1)创建一个键盘录入对象
     Scanner scanner = new Scanner(System.in) ;
 (2)由于java.lang.* 包不是不用导包的,但是Scanner它是java.util.Scanner
     导包: import java.util.Scanner;
 (3)接收键盘录入的数据(以int类型为例)
    int number = sc.nextInt() ;  nextXXX() ;

 (4)输出数据

二、流程控制语句

1、switch

 switch(表达式){
   case 值1:
  语句1;
 break ;
   case 值2:
语句2;
break;
   case 值3:
语句3;
break;
 ....
default:
语句n+1;
break;
  }
  
  执行流程:
       case语句中的值1和表达式中的值比较,如果一致,执行语句1
       如果不一致,走case 值2,再进行比较,如果一致,执行语句2
       ....
       如果上述都不一致,执行default中的语句
  格式的解释:
   switch:当前是一个选择结构语句,它的作用和if语句是一样
   case语句:它后面的值是和表达式进行比较
  break:表示结束当前switch语句
           default:是和if语句中的else意识时候一样的,如果条件都不成立,执行default中的语句
    
    switch语句后面的表达式:能跟的类型:byte,short,int,char
     jdk5以后,可以跟枚举

     jdk7以后,可以String类型

重点:

关于switch语句中的注意事项:
 (1)case语句的后面只能跟常量(根据具体的需求),不能跟变量!   javascript中的case后面是可以跟变量并且还可以跟表达式
 (2)default语句可以在switch语句中的任何位置,不影响代码执行,如果是在语句中,那么break最好带上
 (3)建议把break带上,否则会造成一个现象:case穿透!
 (4)switch语句的结束条件:
  a.语句break语句结束
   b.)执行默认执行到末尾语句结束
  (5)case语句的后面是冒号,表示和switch语句中的表达式进行比较
 (6)跳转控制语句: break,continue,retrun (见6

2、for

 for(初始化语句;条件语句;步长语句){
循环体语句;
  }
  执行流程:
   初始化语句:给当前变量进行赋值,如果满足条件语句,那么执行循环体语句
   执行步长语句,对变量进行自增或自减---->在对条件语句进行判断,如果满足条件,再次执行循环体---->步长语句
   直到不满足条件为止,循环语句结束...
  循环语句的注意事项:
   1)条件语句,不管是一个简单的表达式还是复杂的表达式,都是boolean类型
   2)初始化语句,和条件表语句后面都要带上分号;

3、while

   基本格式:
    while(条件表达式){
  循环语句体;

    }

   扩展格式:(优于基本格式)
      初始化语句 ;
      while(条件表达式){
      循环体语句;
      步长语句;
      }
     执行流程:
      初始化语句对变量进行赋值,如果满足条件表达式,那么执行循环体语句,执行步长语句---->继续判断是否满足条件

          --->满足条件,继续执行循环体语句,步长语句---->当满足不足条件为止结束

while循环和for循环的区别?
 (1)如果从内存角度考虑,for循环要优于while循环,for循环语句执行完毕之后,变量会及时被GC垃圾回收期回收掉
  while循环,它可以去访问循环语句中的变量
 (2)根据具体需求具体分析,
   如果循环次数明确的情况下,应用for循环  
   如果不知道要循环多少次,应该去使用while循环

4、do-while

基本格式
   do{
   循环体语句

   }whiel(判断条件语句) ; 

        扩展格式:
   初始化语句;
   do{
   循环体语句;
   控制体语句;(步长语句)

   }while(条件判断语句) ;


for循环,while循环,do-while循环,他们之间的区别?
  do-while和前两者之间最大的区别:
  循环体语句至少执行一次
        实际开发:优先考虑 for循环,其次while循环,最后,do-while

5、for-for(for循环嵌套):常用于输出行列的,例如乘法表

   for( ){
for( ){
}

}

   正则表达表达式
  转义字符:
   *字符,*代表任意字符
   '\t' 制表符
   'r'  回车符
   '\n' 换行

6、break、continue、return的区别

(1)break:表示中断,结束的意思,结束语句;

     break:不能单独使用,一般在switch语句,或者循环语句中使用

(2)continue:继续的意思,跳出当前循环,直接进入一次循环

     continue:单独是不能使用的,在循环语句中使用多

(3)retrun  :方法的返回值 ,会带回一个结果

7,、方法(function)

方法:完成特定功能的代码块
  方法的格式: 形式参数
   public static  返回值 方法名(参数类型1 变量1,参数类型2 变量名){
   return ...
   }
  方法格式的解释:
   public static:方法是静态的,并且是公共的方法  
   返回值(数据类型): 根据具体的需求,返回什么类型,用什么样的数据类型结束

   方法名:给当前代码块起名字

   命名规则:单个单词:字母全小写 多个单词:第一个单词全部小写,第二个单词开始每个单词首字母大写

   return: 将当前代码的计算的结果,返回给调用者

   方法调用:
    1)单独调用 
    单独调用,没有意义,没有输出结果
    2)输出调用
    直接输出了结果,写死了,不能对结果进行操作
    3)赋值调用 : 有返回值类型的方法,推荐使用赋值调用,它可以结果进一步操作

    int result = sum(a,b) ;

                            无明确返回类型的用void:用单独调用

定义一个方法的注意事项:
   1)方法和方法是平级关系,一个方法中不能再定义个方法
   2)定义一个方法 时候,形式参数必须有数据类型,否则有问题
  3)在主main( )中,调用方法的时候,实际参数中不需要带数据类型的

   4)有大括号的地方,不能有分号,有分号的地方不能有大括号

8、重载

Java就给提供一个专业名词:给多个方法起同一个名字,还不报错---->方法重载          (面向对象:继承中讲方法重写) 
   方法重载:指的是方法名相同,参数不同,返回值没有关系
参数不同:
1)参数个数不同
2)参数类型不同








猜你喜欢

转载自blog.csdn.net/liuxiaofan_/article/details/79796478