Java45天学习计划【五、程序控制结构】【Day7-9】

5.0程序控制简介

三大程序控制语句:

顺序控制:从上到下运行,无判断和跳转;

分支控制:让程序有选择地运行;分为单分支、双分支、多分支;嵌套分支不要超过三层;

循环控制。

【String转char】

5.1分支控制

【If】

【Switch】

switch细节

1、表达式类型应该和case后面的常量的类型保持一致,或者表达式类型能自动转化为case后面的常量的类型;(这一点和赋值是不一样的,赋值时候是右侧能自动转化为左侧则可以)

2、表达式的返回式需要是:byte short int char enum[枚举] String;

3、case子句中的值必须是常量,不能是变量;

4、default可有可无;没有default且不匹配任何输出,则不执行任何输出即可;

5、break跳出当前switch;如果没有遇到break则会一致执行到switch底,除非遇到下一个break。

【练习题】

第三题使用了穿透,很有意思

【if和switch分别适用的场景分析】

1、如果判断的具体数值不多,而且符合byte short int char enum String这六种类型,则应该使用switch语句;

2、对区间进行判断,结果为boolean类型,使用if。

5.2循环控制

【for】循环

1、for循环格式

For(循环变量初始化;循环的条件;循环变量的迭代){

循环操作;

}

2、for循环的流程

循环圈在右下圆里,逆时针;

计算循环执行了多少次的方法:

第一次循环时i是多少;

最后一次循环的时候i是多少(i等于多少以后跳出循环);

从而计算出循环执行了多少次(最后一次的i - 第一次的i + 1)。

【重要的编程思想】

1、化繁为简

把复杂需求拆解成简单需求然后逐步实现;

2、先死后活(利于思考)

先考虑固定的值,然后转成可以灵活变化的值。

具体eg:把范围开始的值和结束的值,做出变量。也就是把可能变化的具体的值变成变量。

【for循环练习题】

【while】循环

1、while循环基本语法

循环变量初始化;

While(循环条件){

循环体;

循环变量迭代;

}

2、while循环的流程

循环流程和for基本是一样的,那for里的控制参数和while应该是一样的;

【while循环练习题】

【关于for 和while的规律性思考】

1、while 循环流程和for基本是一样的,那for里的控制参数和while应该是一样的;实验验证发现dowhile和他们两个的循环控制参数也是一样的;

2、循环主要分为两类,一类是用循环计数,另一类是实现题中所说的从start到end的数字范围内的对数字的处理。

【do while循环】

1、do while循环基本语法

Do{

循环体;

循环变量迭代;

}

While();

2、do while循环的流程

先执行再判断,所以至少执行一次;

while条件最后有一个分号;

会发现循环圈的方向和while for是一样的,只不过开始的节点不一样;

Ctrl+c退出上一个程序的执行过程;

【多重循环】

1、定义:一个循环嵌套另一个循环;(一般使用两层,最多三层);

2、总循环次数= 外层循环次数 * 内层循环次数;

【多重循环例题】

经典的打印金字塔例题

1、化繁为简

1. 打印一个矩形;

2. 打印半个金字塔;(第一层一颗*,第二层两颗*,第三层三颗*)

3. 打印整个金字塔;(1,3,5,7,9)

4.打印空心金字塔

2、先死后活

5.3不知道什么时候需要跳出循环的break需求

【生成随机数】

1、方法:

Math.random() 直接调用即可;

2、功能:

生成[0,1)内的随机数;

3、应用案例:

生成[0,100]的随机整数;

Int a = (int)(Math.random()*100)+1;

【break基本语法】

1、用于终止某个语句块的执行,一般使用在switch或者循环中,随后会跳出switch或者循环;

2、If break ,则跳出循环,不是跳出if

3、break在多层嵌套的语句块中出现的时候,可以通过标签指明要终止哪一层语句块;若不指明,则默认退出最近的循环体。

4、注意变量的作用范围,可能出了循环就不起作用了;解决办法

1、循环外面定义i,循环改成:for(;i<10;i++)

2、循环外面定义一个n,在循环内部把i赋给n,循环外面输出n(推荐)

【补充语法知识】

1、接受字符串的方法:myScanner.next();

2、字符串内容的比较使用的方法是:equals

Name.equals(“”);//Name里的内容和引号里的内容比较是不是相等;且Name和””能交换位置,第二个推荐,可以避免空指针。

【练习题:登录验证】

我最开始的答案:

其中涉及到的问题:

1、不知道如何接收字符串;

2、不知道如何比较两个字符串是否相等;

3、用一个循环就能解决的问题我写了两个循环;

修改后的答案:

5.4 continue

1、功能:结束本次循环,继续执行下一次循环,continue后面的语句就不执行了;因为continue在循环体里,所以理所应当结束本轮循环也就是本次跳出循环体以后应该执行++操作;

2、依然可以如break一样,使用标签指定跳出哪一层循环;但是设想一种情况,假如跳出了外层循环,那么重新进入内层循环的时候,是需要先进行变量初始化操作的。

5.5 return

1、使用方法:

return使用在方法中,表示跳出所在的方法。假如把方法用在main方法中,则表示退出程序。

5.6本章练习题

这题是一个双分支,不是一个单分支,这很重要。只有只处理一种情况,其余情况不处理的时候才单分支。

java里计算几次方:Math.pow(a,b);

要想输出不换行的需要用print而不是println


学习资源:韩顺平java零基础

  • 14
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值