黑马程序员——黑马学习日志之三 Java基础03

本文详细介绍了Java中的运算符,包括算术、赋值、比较、逻辑和位运算符等,并通过实例讲解了if、switch和循环结构的使用方法。

------- android培训java培训、期待与您交流! ---------

黑马学习日志之三 Java基础03

1.运算符

1.1算术运算符:+  —  *  /  ++  -- ;

“+”, 除字符串相加功能外,还能把非字符串转换成字符串。

“/”, 除法运算,小的整数除以大的整数结果是0,整数之间相除结果仍然是整数

“%”,取模相当于取余数,任何整数模2不是1就是0,含有负数的求模,负号的决定取决于左边整数是否是负数,其结果形式与左边的负号形式相同。

“++”, 自加1++可以用在变量前,也可以用在变量后

     int a = 1int b = a++;先把a赋值给b,然后计算a+1

     int a = 1int b = ++a;先计算a+1,在把a+1 的值赋给b      

 1.2赋值运算法:=  +=  -=  *=  /=  %= ;

 = 运算符外其他赋值运算,会自动完成强转操作。

1.3比较运算符:==  !=  >  <  >=  <=  instanceof

     运算完结果为boolean型。

1.4逻辑运算符:&  |  ^  &&  ||  !

     &:两边都为true结果才为true

 &&:如果左边为false,那么右边就不运算。

     |:两边都为false结果才为false;左右两边只要有一个结果是true,结果为true

     ||:如果左边为true,那么右边不运算。       

 ^: 异或,两边一样为false,反之为true

1.5位运算符:用于操作二进制位的运算符,速度较快

     <<:左移,二进制位向左移动,右边缺的补上0,相当于乘以2的倍数;

     >>:右移,二进制位向右移动,左边缺的视情况补上0或者1,相当于除以2的倍数;

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

     & | ^ :把0看做false,把1看做true

 ~:反码,对一个数取反。

1.6三元运算符:(条件表达式)?表达式1:表达式2;

      条件表达式为true,结果为表达式1,反之为表达式2

  条件运算符运算完之后一定有一个结果

流程控制语句

Java中流程控制有:顺序结构、判断结构、选择结构、循环结构。

2.1 判断结构

2.1.1 判断语句第一种形式

     if(条件表达式)

         {

       执行语句;

         }

例子: int a = 1;

       If(a >2)

          System.out.println(“成功”);  //如果if语句后面不加{},只能控制一条语句

       System.out.println(“失败”);

2.1.2 判断语句第二种形式

If(条件表达式)

   {执行语句}

else   

   {执行语句}

if语句和三元运算符的区别

三元运算符可以称之为if语句的简写形式,但是只要简写就会有一定的弊端。

三元运算符,是一种运算符号,也就是说每次执行后,必须有结果。

if...else是语句,只是控制流程,执行后不一定有结果

if...else可以里面可以有语句,并输出结果,三元运算符不可以。

例子:

    int a = 1

    If a ==1

       System.out.println(“a等于1”);

    else 

       System.out.println(“a不等于1”); 

2.1.3 判断语句第三种形式

     If(条件表达式)

        {执行语句}

    else  if(条件表达式)  

       {执行语句}

     else  if(条件表达式

        {执行语句}

     else

        {执行语句}

例子:

    int num = 2;

    if(num ==1)

      System.out,println(“星期一”);

    else if(num ==2)  

       System.out.println(“星期二”);

    else

       System.out.println(“不知道星期几”);

 

2.2 选择结构

2.2.1 switch语句的格式

   Switch(表达式)

    {

case 表达式对应的值:

{

执行语句;

break

}

case 表达式对应的值2

{

执行语句;

break

}

······

      default:

        {

执行语句;

break;

        }

}  

例子:

int a = 6;

switch(a)

{

   case 1:

  System.out.println("a");

  break;

case 2:

  System.out.println("b");

  break;

case 3:

  System.out.println("c");

  break;

     default:

   System.out.println("错误");

}

2.2.2 switch语句的特点

(1)switch语句选择的类型有六种:byte,short,intchar1.5版本的时候可以接收枚举,1.7版本可以接收String字符串。

(2)casedefault之间没有顺序。先执行第一个case,没有匹配的case执行default

(3)结束switch语句的两种情况:遇到break;执行到switch语句结束。

(4)如果匹配的case或者default没有对应的break,那么程序会继续向下执行,运行可以执行的语句,直到遇break或者switch结尾结束。

注意:不要忘记写break;否则会引入陷阱。一case里没有写break;语句,那么程序会继续执行下个case里的执行语句,不会再对case值进行判断

     例子:

      int month = 6;

switch (month){

case 3:

case 4:

case 5:

System.out.println(month+"月是春季");

break;

case 6:

case 7:

case 8:

System.out.println(month+"月是夏季");

break;

case 9:

case 10:

case 11:

System.out.println(month+"月是秋季");

break;

case 12:

case 1:

case 2:

System.out.println(month+"月是冬季");

break;

default:

System.out.println(month+"月没有这样的月份")

}

 2.2.3 swich语句和if语句的区别

1Switchif很像,如果判断数值不多,且满足byteintshortchar四种基本类型,建议使用switch语句。

(2)如果是对区间进行判断或者boolean结果的判断,只能用if。因为switch里面不接收boolean的值。

 

2.3 循环结构

2.3.1 while循环

先判断,再执行

while (条件表达式)

{

循环体;

控制循环次数;

}

While循环一定要保证循环条件有变成false的时候,否则将变成死循环。

Whiletrue

{

死循环;

}

例子:

int x = 1;

while (x<3)

{

System.out.println("x="+x); //循环体

x++;   //x自增来控制循环次数

}

 

2.3.2 do while循环

先执行,再判断

do{

循环体;

控制循环次数

}

while (条件表达式);

例子:

int x = 1;

do{

System.out.println("x="+x);  //循环体

x++;  //x自增来控制循环次数

}

while (x<3);

whiledo while的区别

do while语句会先执行循环体,再去判断条件,也就是说无论条件是否满足他都至少要执行一次循环体,先执行,再判断。

while 先判断条件,只要条件不满足就不在执行循环体了,先判断,再执行。

2.3.3 for 循环

for(初始化表达式1;循环条件表达式2;表达式4)

{

执行语句3;

}

例子:

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

{

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

}

for{}有自己的作用域,变量只在作用域中有效。可以额外定义一个变量,来保存循环变量的值,扩大其作用域。

例子:

     int temp = 0;

for(int i=0;i<10;i++)

{

System.out.println("i:"+i);

temp = i;

}

System.out.println("temp"+temp);

2.3.4 嵌套循环

for循环之中还有for循环

例子:

    // 打印一个55列的*矩阵

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

{

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

{

System.out.print("*");

}

System.out.println();

}

注意:

(1)whilefor可以互换,区别在于for为了循环而定义的变量在for循环结束就是在内存中释放。而while循环使用的变量在循环结束后还可以继续使用。

(2)最简单无限循环格式:while(true) , for(;;)

2.3.5 循环控制

  break语句:break结束循环,一旦在循环体中遇到break,系统将完全结束该循环,开始执行之后的代码。

例子:

     for (int i=0;i<5;i++)

{

System.out.println("i值为"+i);

if(i == 2)

{

break; //i2的时候,跳出循环 执行循环之后的代码

}

}

continue语句:只是终止本次循环,紧接着开始下一次循环。只用于循环结构。

例子:

// 打印偶数

for (int i=0;i<=10;i++)

{

if(i%2==1)

   continue; //跳出此次循环,开始下次循环

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

}

注意:

(1)这两个语句离开应用范围,存在是没有意义的。

(2),这两个语句单独存在下面都不可以有语句,因为执行不到。

(3)可以定义标签,让两个语句作用于指定的范围。

 

 

 

 

 

 

 


-------- android培训java培训、期待与您交流! ----------

常量表示不能改变的数值。 Java中常量的分类: 1,整数常量。所有整数 2,小数常量。所有小数 3,布尔(boolean)型常量。较为特有,只有两个数值。true false。 4,字符常量。将一个数字字母或者符号用单引号( ' ' )标识。 5,字符串常量。将一个或者多个字符用双引号(“ ”)标识。 6,null常量。只有一个数值就是:null. 对于整数:有四种表现形式。 •二进制:0,1 ,满2进1. •八进制:0-7 ,满8进1. 用0开头表示。 •十进制:0-9 ,满10进1. •十六进制:0-9,A-F,满16进1. 用0x开头表示。 进制的基本转换 •十进制 二进制 互转 •十进制转成二进制 除以2取余数 •二进制转成十进制 乘以2的幂数 •十进制 八进制 互转 •十进制 十六进制 互转 •负数的二进制表现形式   对应的正数二进制取反加1 变量的概念: •内存中的一个存储区域 •该区域有自己的名称(变量名)和类型(数据类型) •该区域的数据可以在同一类型范围内不断变化 为什么要定义变量: •用来不断的存放同一类型的常量,并可以重复使用 使用变量注意: •变量的作用范围(一对{}之间有效) •初始化值 定义变量的格式: •数据类型 变量名 = 初始化值; •注:格式是固定的,记住格式,以不变应万变。 理解:变量就如同数学中的未知数。 变量字节大小及有效取值范围 byte占用一个字节,数字大小为-27—27-1 short占用两个字节,数字大小为-215—215-1 int占用四个字节,数字大小为-231—231-1 long占用八个字节,数字大小为-263—263-1 float占用四个字节,数字大小为1.4E-45~3.4E+38 , -1.4E-45~-3.4E+38 。   用二进制的指数形式表示一个浮点数的格式,如:101*22 , 101*2-3 double占用八个字节,数字大小为4.9E-324~1.7E+308, -4.9E-324~-1.7E+308 。 char占两个字节,数字大小为0———216-1,是unicode编码。   字符的本来面目,我们为什么可以直接将一个数字赋给字符变量。 Boolean占一个字节,其取值只有两个,true和false。 等等 详细介绍用法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值