栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java学习笔记-第五章:※程序控制结构

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java学习笔记-第五章:※程序控制结构

第五章:程序控制结构

总体内容程序控制结构

顺序控制分支控制

if-elseif-else if-else if-else分支嵌套

引申:接收字符的方法 switch-case-break

注意switch的细节练习:注意switch中编程思想何时使用switch和if 循环控制

for循环

for循环基本语句介绍for循环执行原理的例题(关键循环执行顺序)for循环注意的细节

引申:ctrl+c会退出死循环 for循环编程思想

例题1※例题2(问题拆解) while循环

while循环基本语句介绍 do-while循环

do-while循环基本语句以及细节、例题 多重循环

要注意的点※多重循环的案例(注意两个思想和问题拆分)

1. 3个班级平均分,及格人数和总分2. 九九乘法表(实现简单,体会思想就好)3. ※※空心金字塔(思想的整合) 跳转控制语句

break

引申:生成[1,100]随机数循环中使用break的细节循环中使用break的案例

案例1:累积和第一次大于20时的当前数(注意作用域)案例2:模拟登陆验证,有三次机会

引申:sublime缩进和取消缩进引申:判断字符串内容是否一致的函数方法equals()实现思路以及注意点和优化 continue

continue介绍 return 本章案例

1. 案例1(注意辨别分支的条件)2. 案例2:水仙花数(注意计算个位十位百位)3. 案例3:输出每5个换一次行(定义一个变量去计数)4. 案例4:输出a-z和A-Z(考察字符可以加加减减)5. 案例5:求1-1/2+1/3-1/4…1/100的和(注意1/2的精度问题)

总体内容

程序控制结构:顺序控制,分支控制,循环控制

程序控制结构 顺序控制

分支控制 if-else

if-else if-else if-else
    可以没有else示例
    注意:这里输入只能是整数,非整数需要使用异常

    注意:分支嵌套-进行判断前先进行有效性确认

    注意这个练习中的赋值语句
分支嵌套

注意:建议分支嵌套最多三层,不然可读性不好

引申:接收字符的方法
    先接收字符串,再取出字符串中的第一个字符示例:接收一个性别
switch-case-break

没有匹配到的默认执行default

注意switch的细节

    解读细节1:表达式的数据类型,必须和case的数据类型保持一致,或者两者之间可以进行比较解读细节2:表达式的数据类型必须是byte,short,int,char,enum(枚举),String解读细节3:case子句中的值必须是常量或者是常量表达式,不能是变量
练习:注意switch中编程思想

思想:把表达式转换为数字


思想:穿透的思想,利用case和break的配合

何时使用switch和if

循环控制 for循环 for循环基本语句介绍


for循环执行原理的例题(关键循环执行顺序)

for循环注意的细节

引申:ctrl+c会退出死循环


解读细节2:
写在for循环语句中则i的作用域只是for循环内部
写在外部则作用域是整个程序

for循环编程思想

两个思想:化繁为简,先死后或

例题1


思想1:化繁为简(问题拆解)

思想2:先死后活(常量换变量)

※例题2(问题拆解)


while循环 while循环基本语句介绍


do-while循环 do-while循环基本语句以及细节、例题
    千万注意:while后有一个分号在做菜单时用的较多,因为菜单肯定要先执行一次
    一个例题:注意条件组合
    do-while实现菜单的样例
多重循环 要注意的点
    循环间相互嵌套(外层循环,内层循环),建议嵌套最多两层,最多不超过三层,否则可读性差嵌套循环就是把内层循环当作外层循环的循环体,当内层是false时进行外层的下一次循环循环的次数:外层循环次数×内层循环次数
※多重循环的案例(注意两个思想和问题拆分) 1. 3个班级平均分,及格人数和总分

问题:3个班级平均分和所有班级平均分以及三个班级及格人数(这里列出的化繁为简,先死后活自己将常量修改为变量)

1.1 注意:这里没有用数组,只是用了一个变量去接收这5个成绩,但是在循环内就已经对每一个学生的信息进行了统计
1.2 ※思路:先进行一个班的统计(内循环进行5次获取学生信息+信息统计),然后再嵌套一个循环(外循环进行3次)
1.3 看这张图:循环内进行总数计算,循环结束下一行进行平均分计算

2. 九九乘法表(实现简单,体会思想就好)

2.1 思想:要想外循环和内循环如何嵌套:外循环进行几次,其中的内循环又执行几次
2.2 外循环9次,内循环循环的次数是根据外循环的值来变化
2.3 多少列就是外循环次数,多少行就是内循环次数

3. ※※空心金字塔(思想的整合)


3.1 打印整个金字塔的规律(九九乘法表的升级–>找到内循环的规律):

3.2 打印空心金字塔的变成思想(内循环不仅要计算出次数还要对里面的内容进行判断):
//整个金字塔时,不加判断直接输出*
//空心金字塔只有第一个和最后一个才输出*,所以要进行判断
3.3 编程过程及思路如下(先死后活,将常量变为变量,这里不写了)
3.4 这里最后一层我加了一个判断,其实不用,要会用条件组合!!!


3.5 打印结果:

跳转控制语句 break 引申:生成[1,100]随机数
    Math.random()生成[0,1)的double值给它乘100,再强转为int类型,则范围就是[0,99]的整数再+1,则范围是[1,100]的整数
循环中使用break的细节

注意:适用于循环中,默认执行当前循环体,当满足条件时跳出该循环

    在循环中进行判断,如果满足条件则使用break跳出循环
    break默认是退出所在层的循环,如果用了标签则可以指定退出哪层(不推荐使用标签)

    使用了lable标签指定:
循环中使用break的案例 案例1:累积和第一次大于20时的当前数(注意作用域)
    注意作用域:

    1.1 (推荐)方法1:在循环外部定义变量n,当条件满足时,把i赋给n

    1.2 方法2:在循环外部初始化int i = 1;
案例2:模拟登陆验证,有三次机会 引申:sublime缩进和取消缩进

tab和shift+tab(取消缩进)

引申:判断字符串内容是否一致的函数方法equals()

推荐将具体的比较值放在前面,这样可以避免空指针

实现思路以及注意点和优化

思想利用:化繁为简

    先不想循环,先想一次分支判断:是否登陆成功,输出成功/不成功想循环,把一次分支装进循环里(最多循环三次),如果true则跳出循环

注意和优化:

    作用域:name和password不能在循环体内定义,要在外部先定义再初始化优化:可以定义一个变量chance,每登录失败一次就减1优化:可以不写else,break以后就不会执行后面的语句,只有if不成立时才会进行后面的chance–和输出语句
import java.util.Scanner;
public class Dengluyanzheng{
	public static void main(String[] args){
		Scanner scanner = new Scanner(System.in);
		String name = "";
		String password = "";
		int chance = 3;
		for(int i = 1;i<=3;i++){
			System.out.println("请输入名字:");
			name = scanner.next();
			System.out.println("请输入密码:");
			password = scanner.next();
			if("wpz".equals(name)&&"123".equals(password)){
				System.out.println("登录成功");
				break;
			}
			chance--;
			System.out.println("还有" + chance + "次机会,请重新输入");
		}
	}
}
continue continue介绍
    continue是结束本次循环,进行下一次循环(break是直接跳出循环,谁都不执行了)
    continue的执行过程
    使用标签指定continue跳出哪个循环,开始进行哪个循环的下一次(默认是跳出最近的循环)
return

return:跳出所在方法,用在main方法中表示退出程序

本章案例 1. 案例1(注意辨别分支的条件)

2. 案例2:水仙花数(注意计算个位十位百位)

3. 案例3:输出每5个换一次行(定义一个变量去计数)

3.1 注意:每次定义变量都要想一想它的作用域要求是什么
3.2 注意:控制语句是嵌套还是并列(逻辑关系是怎样),本题循环里套分支,先判断是否符合条件1,再判断是否符合条件2

4. 案例4:输出a-z和A-Z(考察字符可以加加减减)

5. 案例5:求1-1/2+1/3-1/4…1/100的和(注意1/2的精度问题)

5.1 1/2结果是int类型!!!
5.2 要得到正确的结果要写成1.0/2
5.3 分析判断得到,偶数时是减法,奇数是+法,所以用分支判断就好了

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/711575.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号