JavaSE基础:流程控制结构

感谢尚硅谷免费的视频

流程控制结构概述

顺序结构

程序从上往下依次执行,遵循前向引用的特点

分支结构

程序从两条或多条路径中选择一条执行

一、if结构

特点:

①条件的结果肯定是boolean类型,表示形式:关系表达式或逻辑表达式或boolean的变量或常量或boolean变量的赋值语句
②大括号如果省略,默认执行第一条语句

1、单分支
语法:

if(条件){
	要执行的语句;
}

2、双分支
语法:

if(条件){
	语句1

}else{
	语句2
}

3、多分支
语法:

	if(条件){
		语句1;
	}else if(条件2){
		语句2;
	}...
	else{
		语句n;
	}

4、嵌套分支
语法:

	if()
		if(){
			
		}
	else
		if(){
		}else if(){
		}

二、switch结构
语法:

switch(变量或表达式){
	case 常量值1:
		语句1;break;
	case 常量值2:
		语句2;break;
	....
	default:
		语句n;break;
}

执行顺序:

先判断变量或表达式的值,然后依次从上往下判断各个case的值是否匹配,如果匹配,则执行case后面的语句,直到遇见break为止

如果都不匹配,则执行default语句,直到遇见break为止

注意事项:

①要判断的变量或表达式的类型只能是:int、char、byte、short、String、枚举
②case后面只能是常量值
③case后面的常量值不能重复
④break可以省略,但影响效果
⑤default语句可以省略,可以提到前面

三、if和switch的对比

能用switch的,肯定能用if解决。
但能用if的,不一定用switch解决,必须满足以下要求:
	①类型必须满足
	②等值判断

能用switch解决,尽量使用switch,因为效率较高!

循环结构

一、循环结构的好处

1、提高代码的重用性
2、提高代码的维护性

二、循环结构的四要素

循环变量初始化
循环条件
循环操作
循环变量迭代	

三、循环结构分类

 while
 do while
 for
引申:增强for循环

四、使用落地步骤
题型一:知道循环次数的题目

比如:打印100遍“好好学习”、打印1——200之间所有的偶数等等
优先考虑用for解决!

1、套用for循环的语法框架

for(int i=起始值;i<=次数或终止值;i++){
	//循环操作
}

2、分析循环操作
3、检验循环的四要素是否都存在等
题型二:不知道循环次数的题目

比如:一直输入姓名,直到输入q停止

优先考虑用while或do while解决

1、先分析循环操作和循环条件
2、再套用循环语法

while(循环条件){
	循环操作
}

3、检验循环的四要素是否都存在等

一)循环结构一:while循环
语法:

	循环变量初始化  ①
	while(循环条件){  ②
		循环操作   ③
		循环变量迭代 ④
	}
执行顺序:① ② ③ ④ ②③④ ....直到②不成立为止

二)循环结构二:for循环
语法:

     ①		②		④
for(循环变量初始化;循环条件;循环变量迭代){  
	循环操作   ③
	
}
执行顺序:① ② ③ ④ ②③④ ....直到②不成立为止

三)循环结构三:do while循环

语法:

循环变量初始化  ①
do{  
	循环操作   ③
	循环变量迭代 ④
}while(循环条件) ②
执行顺序:①  ③ ④ ② ③④ ② ....直到②不成立为止

五、嵌套循环

理解:一个循环结构中又嵌套了另一个完整的循环结构里面的循环称为内层循环,外面的循环称为外层循环。

跳转结构

一、break

作用:一般用于循环或switch中,跳出所在的循环或switch
语法:一般搭配if语句使用放在循环中,或放在switch中

示例:

while(){
if(){
	break;
}
}


switch(){
	case 值:语句;break;
}

特点:

嵌套循环中如果使用了break,默认跳出的仅仅是内层循环,如果想跳出外层循环,则需要搭配标签使用

示例:

a:while(){
	for(){
		if(){
			break a;
		}
	}
}

二、continue

作用:只能用于循环中,结束本次循环,继续下一次循环
语法:搭配着if放在循环中

示例:

while(){
	if(){
		continue;
	}
}
while(){
	switch(){
		case 值:语句;continue;
	}
}

特点:

嵌套循环中使用了continue,默认对内层循环起作用,如果想对外层循环起作用,可以搭配标签使用

三、return

作用:用于方法中,跳出所在的方法

流程控制结构说明

分支结构

概念

程序从两条或多条路径中选择一条去执行,这种结构称为分支结构

if结构

特点:

①条件表达式的形式可以为:
boolean的变量
boolean变量的赋值
关系表达式
逻辑表达式

只要最终结果为boolean类型即可

②大括号中的执行语句,可以为0条或任意多条,而且可以是任意的打印、变量、运算、if结构等

③当大括号中的执行语句只有一条的时候,可以省略大括号!

一、单分支

说明:

程序从一条路径中去选择,要么执行,要么不执行

语法:

if(条件){
	//条件成立要执行的语句块

}

二、双分支

说明:

程序从两条路径中去选择,要么执行a,要么执行

语法:

	if(条件){
		//条件成立要执行的语句块

	}else{

		//条件不成立要执行的语句块
	}

三、多重分支

说明:

程序从多条路径中去选择,最终选择一条

语法:

if(条件){
	//条件成立要执行的语句块

}else if(条件2){

}else if(条件3){



}....
else{

	//条件不成立要执行的语句块
}

注意事项:

1、从上往下依次判断if条件的,如果某个条件成立,则下面的条件将不再执行
2、else if块的顺序最好不要调换,因为可能影响效果
3、else块可以省略,也可能影响效果
4、区分开多重if结构和多个if 结构

四、嵌套分支

说明:

一个分支结构中又完整的嵌套了另一个完整的分支结构

示例:

if(){
	if(){
	}else{
	}
}

switch结构

一、语法

switch(变量或表达式){
	case 常量1:语句1;break;
	case 常量2:语句2;break;
	....
	default:语句n;break;
}

二、执行顺序

先判断出switch括号中的变量或表达式的值,然后依次判断case的常量值是否与之相等

如果相等,则执行对应case的语句块,直到遇见break为止
如果没有相等的,则执行default语句块,直到遇见break为止

三、语法注事项

1、变量或表达式的类型:byte、short、int、枚举、String、char
2、case后只能是常量
3、case后的常量不能重复

4、break从语法上可以省略,但影响效果
5、default从语法上可以省略而且可以调换顺序,但影响效果

if结构和switch结构大pk

相同点:

都属于分支结构,很多时候都可以互相替换解决分支结构的题目

不同点:

能用switch结构的题目,肯定能用if结构解决

能用if结构解决的题目,不一定能用switch结构解决,必须满足以下条件:

	①判断的类型有限制,必须是byte、short、int、枚举、String、char
	②必须为等值判断

在这里插入图片描述
Java中定义成员变量时采用合法的前向引用。如:

public class Test{
        int num1 = 12;
        int num2 = num1 + 2;
}

错误形式:

public class Test{
       int num2 = num1 + 2;
       int num1 = 12;
}

在这里插入图片描述
在这里插入图片描述
if语句三种格式:

1.  if(条件表达式){
	执行代码块;
     }

在这里插入图片描述

2.  if(条件表达式){
	执行代码块1;
      }
     else{
	执行代码块2;
      }

在这里插入图片描述

3.  if(条件表达式1){
	执行代码块1;
      }
      else if (条件表达式2){
	执行代码块2;
      }
       ……
       else{
	执行代码块n;
       }

在这里插入图片描述
在这里插入图片描述

switch(表达式){
	case 常量1:
		语句1;
		break;
	case 常量2:
		语句2;
		break;
	… …
	case 常量N:
		语句N;
		break;
	default:
		语句;
		break;
	 } 

如:

String season = “summer”;
			switch (season) {
		       	case “spring”:
				System.out.println(“春暖花开");
				break;
		       	case “summer”:
				System.out.println(“夏日炎炎");
				break;
			case “autumn”:
				System.out.println(“秋高气爽");
				break;
			case “winter”:
				System.out.println(“冬雪皑皑");
				break;

		        	default:
				System.out.println(“季节输入有误");
				break;
		 	}

switch语句有关规则

switch(表达式)中表达式的值必须是下述几种类型之一:byte,short,char,int,枚举,String;
case子句中的值必须是常量,且所有case子句中的值应是不同的;
default子句是可任选的,当没有匹配的case时,执行default;
break语句用来在执行完一个case分支后使程序跳出switch语句块;如果没有break,程序会顺序执行到switch结尾。

在这里插入图片描述

如果判断的具体数值不多,而且符合byte、 short 、int、 char这四种类型。虽然两个语句都可以使用,建议使用swtich语句。因为效率稍高。	
其他情况:对区间判断,对结果为boolean类型判断,使用if,if的使用范围更广。

在这里插入图片描述

在这里插入图片描述
语法:

while(循环条件){
	循环操作;
}

在这里插入图片描述
语法格式

	[初始化语句]
	while( 布尔值测试表达式){
        		语句或语句块;
		[更改语句;]
	}

应用举例

        	int result = 0;
			int i=1;
			while(i<=100) {
			   result += i;
            	  i++;
			}
			System.out.println("result=" + result);

在这里插入图片描述
语法格式

 for (初始化表达式①; 布尔值测试表达式②⑤⑧; 更改表达式④⑦){
         	语句或语句块③⑥ ;
	 }

在这里插入图片描述

for (初始化表达式①; 布尔值测试表达式②⑤⑦; 更改表达式){
         	语句或语句块③⑥ ;
	 }

在这里插入图片描述
语法格式

	[初始化语句]
	do{
        	语句或语句块;
	        [更改语句;]
	}while(布尔值测试表达式); 

应用举例

  int result = 0,  i=1;
  do{
   	   result += i;
     	   i++;
 }while(i<=100);
 System.out.println("result=" + result);

在这里插入图片描述
将一个循环放在另一个循环体内,就形成了嵌套循环。其中,for ,while ,do…while均可以作为外层循环和内层循环。

实质上,嵌套循环就是把内层循环当成外层循环的循环体。当只有内层循环的循环条件为false时,才会完全跳出内层循环,才可结束外层的当次循环,开始下一次的循环。

设外层循环次数为m次,内层为n次,则内层循环体实际上需要执行m*n=mn次。

break 语句
break语句用于终止某个语句块的执行

	{    ……	 
	     break;
	     ……
	}

break语句出现在多层嵌套的语句块中时,可以通过标签指明要终止的是哪一层语句块

label1: 	{   ……        
label2:	         {   ……
label3:			{   ……
			           break label2;
			           ……
				}
		          }
		 } 

continue 语句

continue语句用于跳过某个循环语句块的一次执行 。
continue语句出现在多层嵌套的循环语句体中时,可以通过标签指明要跳过的是哪一层循环 

return语句

return:并非专门用于结束循环的,它的功能是结束一个方法。当一个方法执行到一个return语句时,这个方法将被结束。
与break和continue不同的是,return直接结束整个方法,不管这个return处于多少层循环之内

在这里插入图片描述
break只能用于switch语句和循环语句中。
continue 只能用于循环语句中。
二者功能类似,但continue是终止本次循环,break是终止本层循环。
break、continue之后不能有其他的语句,因为程序永远不会执行其后的语句。
标号语句必须紧接在循环的头部。标号语句不能用在非循环语句的前面。
很多语言都有goto语句,goto语句可以随意将控制转移到程序中的任意一条语句上,然后执行它。但使程序容易出错。Java中的break和continue是不同于goto的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用 JavaScript 编写的记忆游戏(附源代码)   项目:JavaScript 记忆游戏(附源代码) 记忆检查游戏是一个使用 HTML5、CSS 和 JavaScript 开发的简单项目。这个游戏是关于测试你的短期 记忆技能。玩这个游戏 时,一系列图像会出现在一个盒子形状的区域中 。玩家必须找到两个相同的图像并单击它们以使它们消失。 如何运行游戏? 记忆游戏项目仅包含 HTML、CSS 和 JavaScript。谈到此游戏的功能,用户必须单击两个相同的图像才能使它们消失。 点击卡片或按下键盘键,通过 2 乘 2 旋转来重建鸟儿对,并发现隐藏在下面的图像! 如果翻开的牌面相同(一对),您就赢了,并且该对牌将从游戏中消失! 否则,卡片会自动翻面朝下,您需要重新尝试! 该游戏包含大量的 javascript 以确保游戏正常运行。 如何运行该项目? 要运行此游戏,您不需要任何类型的本地服务器,但需要浏览器。我们建议您使用现代浏览器,如 Google Chrome 和 Mozilla Firefox, 以获得更好、更优化的游戏体验。要玩游戏,首先,通过单击 memorygame-index.html 文件在浏览器中打开游戏。 演示: 该项目为国外大神项目,可以作为毕业设计的项目,也可以作为大作业项目,不用担心代码重复,设计重复等,如果需要对项目进行修改,需要具备一定基础知识。 注意:如果装有360等杀毒软件,可能会出现误报的情况,源码本身并无病毒,使用源码时可以关闭360,或者添加信任。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值