java成长之路(二)----流程控制及循环结构

一、流程控制

1.java中的流程控制语句:
顺序结构、分支结构、循环结构。
1)顺序结构:
执行时,按照代码的书写顺序执行。

2)分支结构:
根据特点的条件选择执行某一段代码,分支结构中不是所有代码都会被执行。

3)循环结构:
根据特定的条件重复执行某一段代码。
在循环结构中也不是所有代码都会被执行。

二、分支结构:

根据特点的条件选择执行某一段代码,分支结构中不是所有代码都会被执行

1.简单的if语句:
语法:
if(表达式){//功能代码}
语法说明:
表达式:结构类型必须是boolean类型
执行顺序:首先判断表达式结果,当表达式结果为true时,执行功能代码。
2.if..else..语句:
语法:
if(表达式){//功能代码1}else{//功能代码2}
语法说明:
表达式结果是boolean类型
执行顺序:
先判断表达式结果,当结果为true是,执行代码1,否则执行代码2.
3.多重if..else..
1)嵌套式:
语法:
if(表达式1){
//功能代码1
if(表达式2){
//功能代码2
}else{
//功能代码3
}
}else{
功能代码4
}
2)简洁式:
语法:
if(表达式1){
//功能代码1
} else if (表达式2){
//功能代码2
}....
else{
// 代码功能n
}
switch...case...default..语句:
语法:
swicth(表达式){
case 常量标号1:
//功能代码1 break;
case 常量标号2://功能代码2 break;
....
default : 功能代码n break;
}

语法说明:表达式:非long整形,字符型,枚举类型
执行顺序: 先计算表达式的结果,将结果与每一个case后的常量标号进行对比,跟哪一个常量标号一致,就执行哪一个case后的功能代码,若与
所有的常量标号不一样,执行defaylt后的功能代码。
case语句的穿透性,如何避免case语句穿透,使用break关键字打破case语句的穿透性

当每一个case和default语句后都有break时,case语句的顺序不会影响执行结果

break关键字可以打破case语句的穿透性,但是break不是switch..case..default..语句的必要成分

default语句可以省略:每一个case常量标号都不匹配,那么不 做任何操作

三、循环结构:

根据特定的条件重复执行某一段代码

1.最基础的循环:for循环
语法:for(表达式1;表达式2;表达式3){
//循环体
} 语法说明:
表达式1:循环的初始条件,表示循环从何时开始
表达式2:循环的结束条件,结果是boolean型,表示循环何时结束
表达式3:使初始条件趋近于结束条件的表达式
循环体:被重复执行的代码块

执行顺序:首先执行表达式1初始化循环的开始条件,判断表达式2,当表达式的结果为true时,执行循环体,执行表达式3,否则循环结束;第二次直接判断表达式2

for(表达式1;表达式2;表达式3){
表达式1可以省略,但是分号不可以省 --》for(;表达式2;表达式3){//循环体}---表达式前需要先把值声明并且给初始化}
表达式3可以省略,但是分号不能省略,必须在循环体的最好一条语句加上表达式3
for (表达式1;表达式2;){
// 循环体
表达式3}
}
一般情况下,不省略表达式二,因为这样会形成死循环,如果需要省略表达式2,则需要在代码段加入判断条件,使循环结束。

2. while循环
语法:
while(表达式){
//循环体
} 说明:表达式结果是boolean类型
执行顺序:
先判断表达式结果,若为true执行循环体,否则不执行
3.for循环和while循环的使用环境
当明确循环次数时,首选for循环


斐波那契数列

兔子问题    最开始有一对兔子,每次默认生兔子为一对,三个月后兔子可以开始繁殖小兔子,每对兔子每个月只能生一对,

1、问20个月后有多少兔子?

2、 问多少个月后兔子超过10000对?

见下图:


如图所示:每个月的兔子总和为前两个月的兔子总和相加,即m3=m2+m1;

1、20个月的兔子总共有多少?

class Demo05 
{
	public static void main(String[] args) 
	{
		int m3=0;
		int m2=1;
		int m1=1;
        for(int i=3;i<=20;i++){
		    m3=m2+m1;
		    m1=m2;
	            m2=m3;	
		}System.out.println(m3);
	}
}

2、计算超过10000只是第几月?

class Demo05 
{
	public static void main(String[] args) 
	{	int m3=0;
		int m2=1;
		int m1=1;
        for(int i=3;;i++){
		    m3=m2+m1;
			m1=m2;
			m2=m3;
			if(m3>10000){
				System.out.println(i);
				break;
			}
		}
	}
}



4.do while 循环
语法:
do{
//循环体
}while(也表达式);
语法说明:
执行顺序:第一次执行循环体,第一次判断表达式,若为true,第二次执行循环体,否则不执行。
5.while循环和do..while循环的区别:
while循环的循环体可能执行,也可能不执行
do..while循环中循环体至少会被执行1次。
6.增强for循环:
作用:遍历数组或集合使用
for(数据类型 中间变量:数组名(集合名)){//循环体}

四、流程控制中涉及到的关键字:

1、break关键字:
1)打破case语句的穿透性,在switch..case..default..语句中使用。
2)表示跳出break关键字所在的循环。
2.continue关键字:
只能在循环中使用,表示结束所在的本次循环,开始下一次循环。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值