1.运算符

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

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

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

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

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

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

;int 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。

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

2 流程控制语句

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

2.1 判断结构

2.1.1 判断语句第一种形式

条件表达式)

         {

;

         }

例子: int a = 1;

       If(a >2)

if语句后面不加{},只能控制一条语句。

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

2.1.2 判断语句第二种形式

If(条件表达式)

执行语句}

else   

执行语句}

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

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

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

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

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

例子:

(a ==1)

等于1”);

    else 

不等于1”); 

2.1.3 判断语句第三种形式

(条件表达式)

执行语句}

条件表达式)  

执行语句}

条件表达式) 

执行语句}

     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语句的格式

表达式)
    {
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:
错误");
}

2.2.2 switch语句的特点

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

(2)case与default之间没有顺序。先执行第一个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+"月没有这样的月份")
}

语句和if语句的区别

(1)Switch和if很像,如果判断数值不多,且满足byte,int,short,char四种基本类型,建议使用switch语句。

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

 

2.3 循环结构

2.3.1 while循环

先判断,再执行

while (条件表达式)

{

循环体;

控制循环次数;

}

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

While(true)

{

死循环;

}

例子:
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);
while和do 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循环
例子:
打印一个5行5列的*矩阵
for (int x=1;x < 6;x++ )
{
for(int y=1; y<6; y++)
{
System.out.print("*");
}
System.out.println();
}
注意:
(1)while与for可以互换,区别在于for为了循环而定义的变量在for循环结束就是在内存中释放。而while循环使用的变量在循环结束后还可以继续使用。
(2)最简单无限循环格式:while(true) , for(;;)
2.3.5 循环控制
语句:break结束循环,一旦在循环体中遇到break,系统将完全结束该循环,开始执行之后的代码。
例子:
     for (int i=0;i<5;i++)
{
System.out.println("i值为"+i);
if(i == 2)
{
break; //当i为2的时候,跳出循环 执行循环之后的代码
}
}
continue语句:只是终止本次循环,紧接着开始下一次循环。只用于循环结构。
例子:
// 打印偶数
for (int i=0;i<=10;i++)
{
if(i%2==1)
跳出此次循环,开始下次循环
System.out.println("i="+i); 
}

注意:

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

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

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