if单分支选择结构
• if语句对条件表达式进行一次测试, 若测试为真, 则执行
下面的语句, 否则跳过该语句
if-else双分支选择结构
• 当条件表达式为真时, 执行语句块1, 否则, 执行语句块2。 也就是else部分
If-else if-else多分支选择结构
• if(布尔表达式1) {
• 语句块1;
• } else if(布尔表达式2) {
• 语句块2;
• }………
• else if(布尔表达式n){
• 语句块n;
• } else {
• 语句块n+1;
• }
• 逐条if语句进行判断
• 条件匹配, 进入语句体
• 否则对if语句继续匹配
switch多分支选择结构
• 根据表达式值的不同执行许多不同的操作。
• switch (表达式) {
• case 值1 :
• 语句序列;
• [break];
• case 值2:
• 语句序列;
• [break] ;
• … … … … …
• [default:
• 默认语句 ;]
• }
注意:
1.switch语句会根据表达式的值从相匹配的执行, 一直执行到break标签处开始ak语句处或者是switch语句的末尾。 与任一case值不匹配,则进入default语句(如果有的话)
2.只能处理等值条件判断的情况, 且表达式必须为byte, short, int或char类型 , 不能是String或double,float.
3.常量值必须是与表达式类型兼容的特定的一个常量
4.不允许有重复的case值
5.default子句为可选
while循环
• 在循环刚开始时, 会计算一次“布尔表达式” 的值, 若条件为真, 执行循环体。 而对于
后来每一次额外的循环, 都会在开始前重新计算一次。
• 语句中应有使循环趋向于结束的语句, 否则会出现无限循环–––"死"循环。
循环结构都由如下四个结构组成:初始化、 条件判断、 循环体、 迭代
do-while循环
• do-while:
• 先执行, 后判断。
• while:
• 先判断, 后执行。
While和do -while的区别:do-while总是保证循环体会被至少执行一次!这是他们的主要差别 |
for循环
• for循环语句是支持迭代的一种通用结构, 是最有效、 最灵活
的循环结构
• 语法形式
• for (初始表达式;布尔表达式;步进) {
• 循环体;
• }
• 注意事项
• for循环在执行条件测试后, 先执行程序部分, 再执行步进。
• 在for语句的初始化部分声明的变量, 其作用域为整个for循环体
• “初始化” 和“循环条件表达式” 部分可以使用逗号来执行多个
操作
• 如果三个部分都为空语句(分号不能省) , 相当于一个无限循环
跳转语句---break和continue
• 在任何循环语句的主体部分, 均可用break控制循环的流程。 break用于强行退出循环,
不执行循环中剩余的语句。 (break语句还可用于多支语句switch中)
• continue 语句用在循环语句体中, 用于终止某次循环过程, 即跳过循环体中尚未执行的
语句, 接着进行下一次是否执行循环的判定。
生成0-100随机数, 直到生成88为止, 停止循环! | 把100~150之间不能被3整除的数输出 |
int total = 0; System.out.println(“Begin”); while(true) { total++; int i = (int)Math.round(100 * Math.random()); if(i == 88) break; }S ystem.out.println("Game over, used " + total + " times."); | for (int i = 100; i < 150; i++) { if (i % 3 == 0) continue; System.out.println(i); } |
跳转语句---return
• return语句从当前方法退出, 返回到调用该方法的语句处, 并从该语句的下条语句处继
续执行程序。
• 返回语句的两种格式(具体到方法时详细讲解)
• 1、 return expression
• 返回一个值给调用该方法的语句。
• 返回值的数据类型必须和方法声明中的返回值类型一致或是精度低于声明的数据类型。
• 2、 return
• 当方法声明中用void声明返回类型为空时, 应使用这种返回类型, 它不返回任何值。
跳转语句总结
• break
• switch语句
• 循环语句
• continue
• 循环语句
• return
• 任何语句中, 结束当前方法, 和循环其实没有什么关系
多重循环
• 三种循环方式
• while
• do-while
• for
• 多重循环(循环嵌套)
• 一个循环体内又包含另一个完整的循环结构
• 任何两种循环都可以相互嵌套
• 可以任意层次循环, 但是一般不超过3层
• 多重循环执行过程
•外层循环变量变化一次, 内层循环变量要变化一遍
for(循环条件1){
//循环操作1
for(循环条件2){
//循环操作2
}
}
while(循环条件1){
//循环操作1
for(循环条件2){
//循环操作2
}
}
方法
• 什么是方法
• 封装在一起来执行操作语句的集合, 用来完成某个功能操作
• 在某些语言中称为函数或者过程
• 特殊的方法main, 程序执行的入口
• public static void main(String [ ] args){
• 实现功能的语句
• }
• 不可能所有的功能都放到main中, 需要定义其他方法完成指定功能, 需要时调用方法即可
方法
• 定义方法
• [修饰符] 方法返回值类型 方法名(形参列表 ) {
• 方法体
• return 返回值;
• }
• public static int add(int a, int b, int c) {
• int k = a + b + c;
• return k;
• }
• 修饰符: 封装性时再讲, 决定了方法的工作范围
• 返回值类型: 必选, 如果没有返回值, 须写void。 方法只能返回一个值
• 方法名:
• 参数列表: 可以0个、 1个、 多个, 需要同时说明类型。 称为形式参数
• 方法体: 完成具体功能。 如果有返回值, 必须有return语句; 如果没有返回值, 默认最后一条语句是return, 可以省略。
• 方法调用
![](https://i-blog.csdnimg.cn/blog_migrate/38a4f40ed1d600a4fd63995e0a8bc46d.png)
• 方法重载
• 一个类中可以定义有相同的名字, 但参数不同的多个方法调用时, 会根据不同的参数表选择对应的方法。
• 判断依据
• 同一个类
• 同一个方法名
• 不同: 参数列表不同(类型, 个数, 顺序不同)
• 注意
• 只有返回值不同不构成方法的重载
• int a(String str){},
• void a{String i},
• 调用: a(), 谁能告诉我是调哪个方法?
• 只有形参的名称不同, 不构成方法的重载
总结
• 选择结构
• if语句 单、 双、 多分支选择结构, 等值、 不等值判断均可
• switch语句 只有多分支选择结构 只针对等值判断
• 循环结构
• while循环 先判断再循环 适合循环次数不固定情况
• do-while循环 先循环再判断 适合循环次数不固定情况
• for循环 适合循环次数固定情况
• 循环跳转语句
• break 跳出本层循环, 跳出外层循环需要结合标签或符号位实现
• continue 提前结束本次循环
• return 结束当前方法
• 多重循环
• 任何两种循环都可以相互嵌套
• 外层循环变量变化一次, 内层循环变量要变化一遍
• 方法
• 定义方法指定形参, 调用方法指定实参
• 方法调用是要求形参实参要求个数相同, 类型匹配
• 方法重载: 方法名相同, 参数不同