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

黑马程序员——Java基础(三)之运算符、键盘录入、流程控制语句

2015-09-26 10:29 579 查看
-----------android培训、java培训、java学习型技术博客、期待与您交流!------------

运算符

概述:就是对常量和变量进行操作的符号。

分类:算数运算符,赋值运算符,比较运算符,逻辑运算符,位运算符,三木运算符。

算数运算符:



注意:

自增和自减运算符只能对变量使用;

自增和自减运算符在变量前,先自增或自减,再使用;

自增和自减运算符在变量后,先使用,再自增或自减;

赋值运算符:

基本赋值运算符:=

       表示把=右边的数据赋值给左边。

扩展赋值运算符:

       +=   把=左边和右边的值相加,然后赋值给左边;

       -=   把=左边的值减=右边的值,然后赋值给左边;

       *=   把=左边和右边的值相乘,然后赋值给左边;

       /=   把=左边的值除=右边的值,然后赋值给左边;

       %=   把=左边的值对=右边的值取余,然后赋值给左边;

注意:扩展的赋值运算符隐含了一个强制类型转换。

比较运算符:



注意:比较运算符的结果都是boolean类型。

逻辑运算符:

逻辑运算符是用来连接布尔型表达式的。



位运算符:

       位运算是直接对二进制进行运算,计算机的底层对程序的运算都会转换为位运算,所以位运算效率最高。做位运算时,首先要把数据转换为二进制。



       <<:左移,左边最高位丢弃,右边补齐0;相当于把<<符号左边的数据乘以2的移动次幂。

       >>:右移,右边最低位丢弃,左边最高位是0,补齐0,最高位是1,补齐1;相当于把>>符号右边的数据除以2的移动次幂。

       >>>:无符号右移,右边最低位丢弃,左边最高位无论是0还是1,都补齐0。

在Java中,两变量值交换的4种方法:

<span style="font-size:14px;"><span style="font-size:14px;">public class ExchangeDemo {
public static void main(String[] args) {
int a = 10;
int b = 20;

// 方法1:
int temp = a;
a = b;
b = temp;
System.out.println("a:" + a + ",b:" + b);

// 方法2:
a = a ^ b;
b = a ^ b;
a = a ^ b;
System.out.println("a:" + a + ",b:" + b);

// 方法3:
a = a + b;
b = a - b;
a = a - b;
System.out.println("a:" + a + ",b:" + b);

// 方法4:
b = (a + b) - (a = b);
System.out.println("a:" + a + ",b:" + b);
}
}</span></span>


三目运算符:

格式:比较表达式? 表达式1 : 表达式2;

执行流程:

       根据比较表达式的计算返回一个boolean值;

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

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

例:

<span style="font-size:14px;"><span style="font-size:14px;">public class sanmuDemo {
public static void main(String[] args) {
int a = 10;
int b = 20;
int max = a > b ? a : b;
System.out.println(max);
}
}</span></span>
该段代码输出结果为20。

键盘录入:

方法:

1、导包(位置在class定义的上边):

       import java.util.Scanner;

2、创建对象:

       Scanner sc = new Scanner(System.in);

3、接收数据:

       int x = sc.nextInt();

流程控制语句

       在程序执行过程中,各条语句的执行顺序对程序的结果是有直接影响的,所以,我们要清楚每条语句的执行顺序,同时,还需要通过流程控制语句来控制语句的执行顺序。Java中流程控制语句分三大类(顺序结构,选择结构,循环结构)。

顺序结构

       是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,即写在前面的先执行,写在后面的后执行。

选择结构

       选择结构有特定的语法规则,代码要执行具体的逻辑运算进行判断,根据结果产生选择,从而执行不同的语句。Java语言提供了两种选择结构语句(if语句和switch语句)。

if语句的三种格式:

A:

if(关系表达式) {

语句体;

}

执行流程:首先判断关系表达式看其结果是true还是false,是true就执行语句体,是false就不执行语句体。

B:

if(关系表达式)  {

语句体1;

}else {

语句体2;

}

执行流程:首先判断关系表达式看其结果是true还是false,是true就执行语句体1,是false就执行语句体2。

C:

if(关系表达式1) {

语句体1;

}else if(关系表达式2) {

语句体2;

}

...

else {

语句体n+1;

}

执行流程:

首先判断关系表达式看其结果是true还是false;

如果是true就执行语句体1;

如果是false就继续判断关系表达式2,看其结果是true还是false;

如果是true就执行语句体2;

如果是false就继续判断关系表达式...,看其结果是true还是false;

...

如果没有任何关系表达式结果是true,就执行语句体n+1;

switch语句

基本格式:

switch(表达式) {

case 值1:

语句体1;

break;

case 值2:

语句体2;

break;

...

default:

语句体n+1;

break;

}

执行流程:

首先计算出表达式的值;(其中表达式的取值可以是byte、short、int、char类型,JDK5以后可以是枚举,JDK7以后可以是字符串 )

其次,和case后的值依次比较,一旦有对应的值,就会执行相应的语句,在遇到break就会退出switch语句;

如果和所有case后的值都不匹配,就会执行default后的语句;

注意事项:

1:case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的

2:default可以省略,但是不建议,default的位置可以在switch语句中的任何位置,但是建议在最后。

3:break可以省略,但是结果可能可能不正确。

4:switch语句的结束条件是遇到break或者程序执行的末尾。

循环结构

       循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句。它由4部分组成:初始化语句,判断条件语句,循环体语句,控制条件语句。

for循环语句:

格式:

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

循环体语句;

}

执行流程:

a:执行初始化语句;

b:执行判断条件语句;

结果是true,继续执行,

结果是false,结束循环,

c:执行循环体语句;

d:执行控制条件语句;

e:回到b步骤继续执行;

while循环语句:

格式:

初始化语句;

while(判断条件语句) {

循环体语句;

控制条件语句;

}

while语句和for语句的区别:

while语句的执行流程和for语句相同,但它们分别使用于不同的应用场景,

for循环适合针对一个范围判断进行操作;

while循环适合判断次数不确定的操作;

do...while循环语句:

格式:

初始化语句;

do {

循环体语句;

控制条件语句;

} while(判断条件语句);

       do...while语句在执行过程中,必须先执行一次循环体语句,然后再执行判断条件语句,判断程序是否继续循环,这是它和while语句的区别。

写程序时要优先考虑使用for循环,再考虑while循环,最后考虑do...while循环,并且在使用中要避免出现死循环。

控制跳转语句的关键字

有break 中断; continue 继续; return 返回

break

使用场景:

在switch语句中;

在循环语句中;

其他场景使用无意义;

作用:

跳出单层循环;

跳出多层循环:跳出多层循环时,需带标签跳出,即在循环语句前和break关键字后分别加标签名,

格式:标签名:循环语句

continue

只可在循环中使用,其他场景下使用无意义。

       continue的作用是退出本次循环,然后继续在当前循环语句中执行下一次循环。在多层循环中,continue带标签使用是退出外层的本次循环。

return

结束当前所执行的方法,当方法有返回值时,return将返回值返回上层方法或调用语句。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息