Java分支结构和循环

分支结构


当需要进行条件判断的时候,并且更具条件是否成立来选择执行某一段代码的时候,需要分支结构。

if结构

<1>语法
    if(条件表达式){
        语句块1; -- 多条语句的集合,当然也可以是一条语句。
    }
    语句块2;

	if(3 > 2){
		a = 5;
	}
	a = 6;
        
<2>执行流程
    判断条件表达式是否成立
        => 假如条件成立,则执行语句块1 =>语句块2;
        => 如果不成立,则直接执行语句块2,跳过语句块1

if-else 分支结构

<1>语法
    if(条件表达式){
        语句块1;
    }
    else{
        语句块2;
    }
    语句块3;
    
<2>执行流程
    判断条件是否成立
        => 若成立,执行语句块1,执行语句块3;
        =>不成立,执行语句块2,执行语句块3;

if-else if-else分支结构

<1>语法
    if(条件表达式){
        语句块1;
    }else if(条件表达式2){
        语句块2;   
    }else{
        语句块3;
    }
    语句块4;
    
<2>执行流程
        判断条件是否成立
        => 若成立,执行语句块1,执行语句块4;
        => 若不成立,判断条件表达式2是否成立
            => 若成立,执行语句块2,执行语句块4;
            => 若不成立,执行语句块3,执行语句块4;

switch-case 结构

<1>语法
    switch(表达式/变量){
        case 字面值1:
                语句块1;
                break;
        case 字面值2:
                语句块2;
                break;
        default:
            语句块3;
    }
        语句块4;
        
<2>执行流程
    计算变量/表达式的数值 => 判断是否匹配字面值1;
        =>如果匹配,则执行语句块1,执行语句块4;
        =>如果不匹配,则判断是否匹配字面值2
            =>匹配,执行语句块2,执行语句块4,
            =>不匹配,则执行语句块3,执行语句块4

循环结构


当需要在某一个场合进行条件的判断,有所选择的去执行一段代码,需要分支结构
当需要在某个场合重复去做一件事情,需要使用循环结构

for循环

<1>语法格式
    for(初始表达式1;条件表达式2;修改初始条件的表达式3){
            语句块1;//(循环体)
    }
        语句块2;
        
<2>执行流程
        执行初始表达式1=>判断条件表达式2是否成立
            =>成立,则执行语句块1=>修改初始条件的表达式3 =>判断条件表达式2是否成立
            =>不成立,则执行语句块2;

break和continue

break关键字可以用于switch-case结构和循环中,表示跳出当前结构执行后续的语句;
continue关键字只能用于循环结构中,表示结束本次循环继续下一次循环(熟悉)

特殊的循环

for(;;){}  - 这种没有明确循环条件的循环叫做无限循环,俗称“死循环”。
通常使用在没有明确循环次数的场合中,与break关键字搭配使用。

双重循环

<1>语法格式
    for(初始表达式1;条件表达式2;修改初始条件的表达式3){
        for(初始表达式4;条件表达式5;修改初始条件的表达式6){
            语句块1;//(循环体)
        }
    }
    
    <2>执行流程
    执行表达式1=>判断条件表达式2是否成立
        =>成立,则执行初始表达式4 => 判断条件表达式5是否成立
            =>成立,则执行语句块(循环体); => 执行表达式6 =>条件表达式5是否成立
            =>不成立,则语句块(循环体)结束 => 执行表达式3 =>判断条件表达式2是否成立
        =>不成立,则外层循环结束。

while循环

<1>语法格式
    while(条件表达式){
        循环体;
    }
        语句块;
        
<2>执行流程
    判断条件表达式是否成立
        =>成立,执行循环题 => 判断条件表达式是否成立
        =>不成立,则执行语句块
        
<3>注意事项
        1.while循环和for循环是可以互补的。
        2.while循环通过使用在明确循环条件但不明确循环次数的场合中;
          for循环通常使用在明确循环次数/范围的场合中使用.(推荐)
        3.与for(;;){} 都表示无限循环的方式是   : while(true){} 

do-while

<1>语法格式
    do{
        循环体;
    }while(条件表达式);
    语句块;
    
<2>执行流程
        执行循环体=> 判断条件表达式是否成立
            =>成立,则执行循环体=>判断条件表达式是否成立
            =>不成立,则执行语句块。
            
<3>注意事项
    do-while循环通常使用在至少需要执行一次循环体的场合中,而while循环可以不执行。
三种循环的使用场景
1、如果知道循环次数,使用for循环。
2、如果不知道循环次数,只知道结束条件,使用while循环。
3、如果无论如何都要执行一次程序,则使用do-while循环

三种循环都可以应对所以情况,知识看方不方便
递归

递归是自调的一种算法,就是方法本身自己调用自己,所形成的循环。

// 经典汉罗塔问题
public static void hanoi(int n,int p1,int p2,int p3)
	{
		if(1==n)
			System.out.println("盘子从"+p1+"移到"+p3);
		else
		{
			hanoi(n-1,p1,p3,p2);
			System.out.println("盘子从"+p1+"移到"+p3);
			hanoi(n-1,p2,p1,p3);
		}
	}
	public static void main(String[] args) {
		/*4表示盘数,1表示开始柱子,2表示开始柱子,3表示开始柱子*/
        hanoi( 4, 1, 2, 3);
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值