现在的位置: 首页 > 综合 > 正文

第三天:运算符

2018年05月16日 ⁄ 综合 ⁄ 共 2372字 ⁄ 字号 评论关闭

Java 运算符
 1 数学运算符: + - * / %
  a 运算的封闭性: 
    1.同种类型参与运算
    2.返回同种类型(可能发生:上溢出和下溢出)
    3.byte, short, char 按照int运算
  b.Java中字面量的运算被Javac优化了, 优化为
      一个固定的常量.
      
    int d1 = 2;
    double d2 = 3;
    double dx = d1/d2;//0.666666
    
    int i1 = 2;
    int i2 = 3;
    int ix = i1/i2;//0 (下溢出)
    
    char c = 'A'+1+1+1;//68
    char c2 = (char)('A' + n);
    
    int i = 1024*1024*1024*4;//(上溢出)
    long l = 1024*1024*1024*4;//(上溢出)
    long ll = 1024L*1024*1024*4;
    
  c % 取余数运算
   0%5 -> 0, 2%5->2, 5%5->0, -1%5->-1
   
      ------------------------------->
 n    -6-5-4-3-2-1 0 1 2 3 4 5 6 7 8 9 10
 n%5  -6 0-4-3-2-1 0 1 2 3 4 0 1 2 3 4  0 
   
  *字符串的连接运算: +
   任何数据与字符串连接(+) 都会生成新字符串
   ","+2 -> ",2"
   ','+2 -> ?整数
   
2 关系运算符 && || ! | &
  1 boolean b = '\u0000'==0;//true  

int age = 12;
char sex = '男';
boolean isChild = age<16;
boolean isMan = sex=='男';
boolean isBoy = isChild && isMan;
boolean isGirl = isChile && ! isMan;
boolean isKid = isBoy || isGirl;
  
  2 && || 是短路的逻辑运算.
    & | 是非短路运算
    大多数使用 短路运算.
    
3 自增运算: ++, --
  a i++, 后++, 先将i的值作为整个表达的值,
    然后将i增加1.
  b ++i, 先++, 先将i增加1, 然后将i的值作为
    整个表达的值.
     int a = 1;
   a=a++;
   System.out.println(a);//1
   
记住,一定是先运行等号右边的,再运行等号左边的,无论什么运算都适合。
十分厉害,先将i的值加后,在内存中这它就是2,但是整个整个表达式的值确是1,然后再赋值给a
所以内存中a又从2变成 了1。
 
int a = 1;
int b = 1;
b = a++;
执行顺序:(十分重要)
1、a++表达式的值是1
2、执行a=a+1
3、执行赋值运算,将表达式的值赋值给b.

网站分页:
int  rows = 23;//共有多少行。
int size = 10;//每页多少行
int pages;

pages = rows%size==0?rows/size:rows/size+1;

        
4 分支流程控制语句
  if(布尔表达式){
    //...
  }else{
   //...
  }
  
  switch(整数表达式){//一定是整数表达式:byte short char int 没有long
   case 整数(int)常量://这里也必须是int所兼容的常量。
    // ....
    break;
   case 整数常量:
    // ....
    break;
default:
 //....
  }

  switch(sex){
   case '男': 
    System.out.println("先生您好");
    break;
  case '女':
    System.out.println("女士您好");
    break;
   default:
    System.out.println("有某搞错");
    break;
  }
  
5 循环控制(1234代表执行顺序)
  for(1初始化表达式;2布尔表达式; 4递增表达式){
   //3循环体
  }
  //这一个其实是要把字符转换成整数、如果不转换成整数它们的所有unicode编码是155.
//现在我们每个字符都让它减去字符0,即可。

char[] chs = {'6','3','5','1','5','7'};
int sum2 = 0;
for(int i=1;i<6;i+=2){
sum2 += (chs[i]-'0');
}
System.out.println(sum2);

 
 //计算字符串偶数项之和,要减去'0'否则算的是字符串unicode编码。
String code = "6902083892258";
int sum4 = 0;
System.out.println(code.length());
for (int i = 1; i < code.length(); i+=2) {
System.out.println(code.charAt(i) - '0');
sum4 += code.charAt(i)-'0';
System.out.println(sum4);
}
System.out.println("字符串偶数项之和:"+sum4);
 
  
6 break continue
  1 break 结束本次循环
  2 continue 继续当前循环
  
作业:
 1 做练习
 2 复习课堂代码, (完全练习一遍)
 BreakContinueDemo.java
//输出所有'说'的位置:能够把“说”所有这个位置都循环出来。
    for(int j=0; j<7; j++){
      if(chs[j]!='说'){
        continue;
      }
      System.out.println(j);
    }
    
  }
预习:
 while,  do...while, 数组
    
    
    
    
    
    
    
  

抱歉!评论已关闭.