Java分支结构和循环结构

一些代码规范

写代码时要善用空格使代码变得整洁:运算符号左右端加上空格

写代码前一定要分析程序的逻辑,怎么运行,怎么实现功能,最好写在文档注释中

条件(分支结构)与循环

分支结构

如果条件成立,执行代码块1,不成立则执行代码块2或代码块3或者不执行,代码块中可以嵌套分支结构

有多种分支结构的语句可以使用if-else、switch等

if(单分支结构)

进行单一条件判断,满足条件则运行if代码块内的内容,不满足则跳过if语句

语法为:

if(条件){
        int num = 3;//满足条件执行这里
    }
    else{
        int num = 4;
    }//不满足则只执行这里

if…else…结构(双分支结构)

if-else结构为双分支结构,在满足if条件后执行if内代码块,不满足则执行else代码块内的内容

也可以嵌套,在代码块内再添加一个分支结构

if 和 else 代码块有且只有一个执行(排他性,互斥性)

语法:

if(条件){//条件为true时执行if代码块内的代码,为false时执行else内代码块,条件可以使用逻辑运算符进行条件判断
    int num = 1;
}
else{
    int num = 2;
}

else if 结构(多分支结构)

存在多个条件判断,针对不同条件实现不同功能,类似于switch

一个if可以有多个else if

当一个if没有成功时会判断下一个if

  • 这里的else if中的else是对应上一个if

示例如下:

if(条件1){
    代码块1;
}else if(条件2){
    代码块2;
}else if(条件3){
    代码块3;
}...

switch结构

可以对一个变量进行多重判断,可以加default来设置默认执行(没有条件符合时)

  • 缺点:不能判断区间,且由于case值是整型类型或char和他们的包装类型等,所以不能使用浮点数,变量和判断值的类型要相同

switch 在编译时会生成一张匹配调表,在编译时就已经确定,因此不能为变量

  • 项break是非常必要的,跳出整个switch结构,不再执行任何内容,否则会执行满足条件的项和后面的项,具体示例在下方

  • case中的值需要常量,不能为变量

表达式为具体为:

switch (变量){
	case1:
		代码块;
		break;
	case2:
		代码块;
		break;
	......
	default:
		代码块;//没有符合任何值时执行该语块
		break;
}
//错误示例
switch (变量){
	case1:
		代码块1;
		break;//这里有break,当变量满足值1时执行完代码1就会退出switch
	case2:
		代码块2;//这里往后都没有break,就会导致如果满足值2时,代码块2、3、4...都会执行,直到后面出现break,或代码全部执行完毕后才会跳出结构,也可以利用这个特性来实现多个条件执行相同代码块
	case3:
		代码块3;
        ...
	default:
		代码块4;
}

循环结构

善用断点功能,可以更快抓虫

当需要重复执行相同代码非常多次时,使用循环结构可以极大减轻编程难度和复杂度,且使代码可读性增加

一般循环结构分析:起始点、过程、结束点

通过分析来编写:起点、循环体、计次、结束判断条件(如需死循环可以省略其中一些步骤)

while 循环结构

可以重复执行多次,条件为true时执行代码块,代码执行前进行条件判断

循环次数不定一般使用while循环

可以使用break跳出循环

  • 有可能会死循环(条件一直为true)

代码结构为:

while(条件){
	代码块;
}

do-while 结构

代码执行后再进行条件判断,第一次进入直接执行代码,执行一次后再判断一次

代码结构为:

do{
	代码块;
}while(条件);//注意while后面有个分号

for 循环结构

条件为true时执行代码块,执行代码前判断条件

可以进行嵌套,嵌套循环体“粒度”比较粗,外层执行一轮,内层执行n轮,外层第二次将会使内层循环重新开始,循环中的循环仅能在循环内使用,如循环变量 i 、 j 都是局部变量

在打印图案的案例中可以使用for循环嵌套来实现对图案行列的控制

初始化语句只执行一次

代码结构为:

for(初始化语句;条件;修改变量){//执行代码和判断值可以没有值,但是分号不能去掉
	代码块;
    for(...){//这个循环整个完成后才会退出到主循环,两个循环变量名不能相同
        代码块;
    }
}

控制关键字:

如continue、break、return等用于控制循环的运行

continue

continue关键字在循环语句中使用,可以跳过此次循环,节省程序运行时间,优化程序结构

遇到continue后,后面语句全部跳过,直接跳出该次循环:

while(i<10){
	if(i == 5){
		continue;//当i等于5时便会直接跳过该次循环i仍然是5但循环会卡在这形成死循环
	}
	i++;
}
break

本身必须存在于循环中,即使在循环的代码块中的 if 结构中,也会直接影响离自己最近一层的循环

运用于循环中,运行到此处时,遇到break则退出整个循环,与continue最大的区别就是continue跳过一次循环,而break直接退出当前层的循环:

for(int i =0; i<=10; i++){
	if(i == 5){
		break;//此时当i等于5时break会立刻停止他所在的循环,直接跳出循环
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值