黑马程序员——Java基础(三)之运算符、键盘录入、流程控制语句
2015-09-26 10:29
579 查看
-----------android培训、java培训、java学习型技术博客、期待与您交流!------------
运算符
概述:就是对常量和变量进行操作的符号。
分类:算数运算符,赋值运算符,比较运算符,逻辑运算符,位运算符,三木运算符。
算数运算符:
注意:
自增和自减运算符只能对变量使用;
自增和自减运算符在变量前,先自增或自减,再使用;
自增和自减运算符在变量后,先使用,再自增或自减;
赋值运算符:
基本赋值运算符:=
表示把=右边的数据赋值给左边。
扩展赋值运算符:
+= 把=左边和右边的值相加,然后赋值给左边;
-= 把=左边的值减=右边的值,然后赋值给左边;
*= 把=左边和右边的值相乘,然后赋值给左边;
/= 把=左边的值除=右边的值,然后赋值给左边;
%= 把=左边的值对=右边的值取余,然后赋值给左边;
注意:扩展的赋值运算符隐含了一个强制类型转换。
比较运算符:
注意:比较运算符的结果都是boolean类型。
逻辑运算符:
逻辑运算符是用来连接布尔型表达式的。
位运算符:
位运算是直接对二进制进行运算,计算机的底层对程序的运算都会转换为位运算,所以位运算效率最高。做位运算时,首先要把数据转换为二进制。
<<:左移,左边最高位丢弃,右边补齐0;相当于把<<符号左边的数据乘以2的移动次幂。
>>:右移,右边最低位丢弃,左边最高位是0,补齐0,最高位是1,补齐1;相当于把>>符号右边的数据除以2的移动次幂。
>>>:无符号右移,右边最低位丢弃,左边最高位无论是0还是1,都补齐0。
在Java中,两变量值交换的4种方法:
三目运算符:
格式:比较表达式? 表达式1 : 表达式2;
执行流程:
根据比较表达式的计算返回一个boolean值;
如果是true,就把表达式1作为结果;
如果是false,就把表达式2作为结果。
例:
键盘录入:
方法:
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将返回值返回上层方法或调用语句。
运算符
概述:就是对常量和变量进行操作的符号。
分类:算数运算符,赋值运算符,比较运算符,逻辑运算符,位运算符,三木运算符。
算数运算符:
注意:
自增和自减运算符只能对变量使用;
自增和自减运算符在变量前,先自增或自减,再使用;
自增和自减运算符在变量后,先使用,再自增或自减;
赋值运算符:
基本赋值运算符:=
表示把=右边的数据赋值给左边。
扩展赋值运算符:
+= 把=左边和右边的值相加,然后赋值给左边;
-= 把=左边的值减=右边的值,然后赋值给左边;
*= 把=左边和右边的值相乘,然后赋值给左边;
/= 把=左边的值除=右边的值,然后赋值给左边;
%= 把=左边的值对=右边的值取余,然后赋值给左边;
注意:扩展的赋值运算符隐含了一个强制类型转换。
比较运算符:
注意:比较运算符的结果都是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将返回值返回上层方法或调用语句。
相关文章推荐
- #无私分享《传智播客2011版。net平台c#视频》全套哦30.7G
- 怎样学习java,漫谈java学习之路
- 设置jdk环境变量时lib中的rt.jar ,dt.jar ,tool.jar是什么,作用是什么
- Java 集合系列11之 Hashtable详细介绍(源码解析)和使用示例
- java基础知识笔记
- java中web应用中重定向与转发的区别
- java基础篇---枚举详解
- java基础数据类型包装类
- equals与null
- Java.基础(学习笔记)
- 一个简单的加密解密程序
- 黑马程序员---Java面向对象编程思想小结
- 黑马程序员---java面向抽象/接口编程
- 黑马程序员---java单例设计模式
- 黑马程序员---java字符串常用类
- 黑马程序员宣传语征集大赛
- 黑马程序员-------关于今天的一个程序学习心得
- JAVA基础-IO流
- 黑马程序员----把Eclipse修改为黑色主题颜色方案
- c基础语法(一)---流程控制与函数