流程结构
1、顺序结构
2、分支结构
If-else
Switch-case
3、循环结构
For
while
do-while
循环结构四要素
初始化部分
循环条件部分:Boolean类型变量或表达式
循环体部分
迭代部分
tips
break可以跳出当前循环
continue可以跳出当次循环
无限循环后面不能有执行语句
If-else
格式
1、if(){
}
2、if(){
}else{
}
3、if(){
}else if(){
}else{
}
If-else嵌套
*if()没有花括号则只能管一行
scanner
格式
Import java.util.Scanner;
Scanner sc = new Scanner(System.in);
在最后写上input.close();防止内存泄漏
获取变量
提供了获取byte,short,int,long,float,double,boolean,string类型的变量,没有提供char类型变量的方法,因此需要通过next.chatAt(0)来获取char
例子获取一个随机数
1、Math.random():返回一个[0.0,1.0)范围内的double随机数
2、(int)(Math.random()*(b+1-a))+a:返回[a,b)范围内的int随机数
Switch-case
格式
Switch(表达式){
case 常量1:
//执行语句1
//break;
Case 常量2:
//执行语句2
//break;
…
default:
//执行语句n
//break;
}
执行过程
根据表达式值依次匹配case语句,一旦表达式值与case常量相等,则执行该case语句。
执行完后,若遇到break,则跳出switch-case结构。
若未遇到break,则继续执行该case之后的语句,直到遇到break或者执行完后面所有语句。(case穿透性)
特点
1、表达式只能为特定数据类型:byte,short,cahr,int,枚举类,string。
2、表达式和常量只能进行相等判断,不能进行范围判断。
3、应用场景:只有几个有限选项可供选择。
4、若用户输入不合法,用正则表达式进行校验
5、和if-else的转换:
1)能使用switch-case时,都可以改成if-else
2)二者都能使用的情况下,推荐使用switch-case,效率更高,时间复杂度小
for&while&do-while
for
格式
for(①;②;④){
③
}
执行过程
①---->②---->③---->④(---->②---->③---->④…)---->②
while
格式
①
while(②){
③
④
}
执行过程
①---->②---->③---->④(---->②---->③---->④…)---->②
if VS while
1、可以相互转换
2、while初始化的东西在循环结束后仍然有效
do-while
格式
①
do{
③
④
}while(②);
执行过程
①---->③---->④---->②(---->③---->④…---->②)---->②
特点
1、至少会执行一次循环体
和if,while三者间可以相互转换