您的位置:首页 > 职场人生

黑马程序员——Java基础语法(二)—运算符、流程控制

2014-10-17 14:22 489 查看
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

一、运算符

1、运算符:

(1)算数运算符

+,-,*,/,%,++,--

+:

1、数学上的加法(减法,乘法相同)

2、指定正数(减法相同)

3、连接字符串

/:

两个整数相除,取整数

%:

两个数相除,取余数

符号与被除数相同

++,--:

单独使用时:直接自增,自减

混合使用时(++,--规则相同):

++在前:先加1,再使用

++在后:先使用,后加1

(2)赋值运算符

=,+=,-=,*=,/=,%=

对于类似+=这样的赋值,是将等号左边的数与等号右边的数计算,再赋值给等号左边



还包含一个隐形的强制转换即:

byte b = 10;

b += 10;//不会,相当于b = (byte)(b+10)

除等:除数不能为0

(3)关系运算符

==,!=,>,>=,<,<=

特点:关系运算符的结果都是boolean类型。

请千万注意:== 不要写成 =

(4)逻辑运算符

&,|,!,^,&&,||

&:有false则false

|:有true则true

!:true变false,false变true

^:相同false,不同true

&&:有false则false

||:有true则true

&&和&的区别是:如果左边有false了,右边将不再执行。

||和|的区别是:如果左边有true了,右边将不再执行。

开发中常用:

&&,||,!

(5)位运算符

^ : 一个数据对同一个数据^两次,结果还是数据本身。

举例:a ^ b ^ b = a

(6)三元运算符

格式:

条件表达式?表达式1:表达式2

执行流程:

根据条件表达式返回的是true还是false,决定结果是什么。

如果是true,就把表达式1作为结果。

如果是false,就把表达式2作为结果。

举例:

int a = 100;

int b = a > 50 ? 200 : 100;

请问b的值?200

2:面试题

(1)请用最有效率的代码写出2乘以8

2<<3

(2)请交换两个变量。

int a = 10;

int b = 20;

开发:临时变量

int temp = a;

a = b;

b = temp;

面试:位^运算符

a = a ^ b;

b = a ^ b;

a = a ^ b;

二、流程控制

1、if语句

(1)用于做判断使用的。

常见于对某个范围进行判断,或者几个变量进行判断,还有就是boolean表达式的判断。

(2)格式:

A:第一种格式

if(条件表达式)

{

语句体;

}

执行流程:

如果条件表达式为true,就执行语句体;

否则,什么都不执行。

B:第二种格式

if(条件表达式)

{

语句体1;

}

else

{

语句体2;

}

执行流程:

如果条件表达式为true,就执行语句体1;

否则,就执行语句体2;

特殊:

可以和条件表达式(三元运算符)在某些情况下进行替换。

一般是在赋值的情况下可以。

举例:

获取两个数中的最大值。

C:第三种格式

if(条件表达式1)

{

语句体1;

}

else if(条件表达式2)

{

语句体2;

}

...

else

{

语句体n;

}

执行流程:

如果条件表达式1为true,就执行语句体1;

如果条件表达式2为true,就执行语句体2;

...

否则,就执行语句体n;

D:注意事项

a:什么时候时候哪一种if语句。

第一种格式在判断条件为一种情况下使用。

第二种格式在判断条件为两种情况下使用。

第三种格式在判断条件为多种情况下使用。

b:每一种if语句其实都是一个整体,如果有地方执行了,

其他的就不执行了。

c:如果if或者else里面控制的语句体是一条语句,是可以省略大括号的,

但是,如果是控制多条语句,就必须写上大括号。

建议:永远写上大括号。

d:大括号和分号一般不同时出现。

E:作用域

所有变量的定义只在它所属的大括号内有效。

2、switch语句

(1)用于做选择使用的。一般用于几个常量的判断。

switch会把几个常量值直接加载到内存,在判断的时候,效率要比if高。

所以,针对几个常量的判断,一般选择switch语句。

(2)switch语句的格式:

switch(表达式)//byte,short,int,char,String

{

case 值1:

语句体1;

break;

case 值2:

语句体2;

break;

case 值3:

语句体3;

break;

...

default:

语句体n;

break;

}

A:针对格式的解释

switch:表示这里使用的是switch语句,后面跟的是选项。

表达式:byte,short,int,char

JDK5以后可以是枚举(就业班讲)

JDK7以后可以是字符串(后面讲)

case:表示这里就是选项的值,它后面的值将来和表达式的值进行匹配。

case后面的值是不能够重复的。

break:

switch语句执行到这里,就结束了。

default:

当所有的case和表达式都不匹配的时候,就走default的内容。

它相当于if语句的else。一般不建议省略。

B:执行流程

进入switch语句后,就会根据表达式的值去找对应的case值。

如果最终没有找到,那么,就执行default的内容。

C:注意事项:

a:default整体可以省略吗?

可以,但是不建议。

b:default的位置可以放到前面吗?

可以,但是不建议。

c:break可以省略吗?

可以,但是不建议。

default在最后,break是可以省略的。

case后面的break可以省略,但是结果可能有问题。

d:switch语句什么时候结束呢?

就是遇到break或者执行到程序的末尾。

3、循环

(1)如果我们发现有很多重复的内容的时候,就该考虑使用循环改进代码。

让我们代码看起来简洁了。

(2)循环的组成

A:循环体,就是要做的事情。

B:初始化条件。一般定义的是一个初始变量

C:判断条件。用于控制循环的结束。

D:变量的变化。一般都是一个++/--操作。

(3)循环的分类:

A:for

for(初始化条件;判断条件;控制条件)

{

循环体;

}

执行流程:

a:先执行初始化条件;

b:执行判断条件

c:根据判断条件的返回值:

true:执行循环体。

false:就结束循环。

d:最后执行控制条件。返回到b继续。

B:while

初始化条件;

while(判断条件)

{

循环体;

更改循环变量;

}

执行流程:

a:先执行初始化条件;

b:执行判断条件

c:根据判断条件的返回值:

true:执行循环体。

false:就结束循环。

d:最后执行控制条件。返回到b继续。

C:do...while

初始化条件;

do{

循环体;

控制条件;

}while(判断条件);

执行流程:

a:先执行初始化条件;

b:执行循环体和控制条件;

c:执行判断条件

d:根据返回值

true:返回b。

false:就结束循环。

注意:

a:一般使用for循环或者while循环。而且这两种循环是可以等价转换的。

b:do...while循环至少执行一次循环体。

(5)循环嵌套:

A:也就是循环语句的循环体是一个循环语句。

B:通过输出

****

****

****

我们不断的改进。发现了一个问题:

外循环控制行数,内循环控制列数。

(6)案例:

A:正三角形

内循环的判断条件:y<=x

<span style="white-space:pre">		</span>     for(int x=0; x<5; x++)
{
for(int y=0; y<=x; y++)
{
<span style="white-space:pre">	</span>System.out.print("*");
}
System.out.println();
}
B:倒三角形

****

***

**

*

内循环的初始化条件:y=x

<span style="white-space:pre">			</span>for(int x=0; x<5; x++)
{
for(int y=x; y<5; y++)
{
System.out.print("*");
}
System.out.println();
}
C:九九乘法表

<span style="white-space:pre">		</span>for(int i=1;i<=9;i++){
for(int j=1;j<=i;j++){
System.out.print(i+"*"+j+"="+i*j+"\t");
}
System.out.println();
}
2:break和continue

(1)有些时候,我们需要对循环进行一些控制终止,这个时候,就出现了两个关键字:

break和continue

(2)特点:

A:它们都必须在循环中(break还可以在switch中。)。

一般在循环的判断中。

B:如果单独使用break和continue,后面是不能有语句的。

(3)区别:

A:break 结束当前循环。

B:continue 结束本次循环,进入下一次循环。

(4)如何退出嵌套循环:

用带标签的循环。

格式:

标签名:for(){

for(){

if()

{

break 标签名;

}

}

}

3:应用场景

(1)变量:发现有一个数据是变化的时候,就要用变量。

(2)if语句:如果是一个范围的判断,boolean类型的表达式的判断,几个数据的判断。

(3)switch语句:几个数据的判断。一般这种情况,有限选择switch。

(4)for语句:如果次数或者范围特别明确。(打印1-100之间所有数,打印矩形)

(5)while语句:如果次数或者范围不明确。(珠穆朗玛峰)

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐