程序流程控制三大结构
一.顺序结构
按照顺序从上到下逐行进行纸执行
二.选择结构:
选择结构用于判断给定的条件,根据判断的结果判断某些条件,根据判断的结果来控制程序的流程。
1.if选择结构
语法1:基本的if结构
if(boolean值){
//功能语句
}
boolean值:true 内部的功能语句执行
false 内部的功能语句不执行
例如:
public static void main(String[] args) {
//1 直接是一个boolean
if(true){
System.out.println("常量满足条件,执行了!");
}
//2 放一个boolean类型变量
boolean b = true;
if(b){
System.out.println("变量满足条件,执行了!");
}
//3 放一个表达式
int i = 3;
if(!(i<2 && b)){
System.out.println("表达式满足条件,执行了!");
}
}
语法2:if...else结构
排他性
if(boolean值){
//功能语句1
}else{
//功能语句2
}
boolean值:true 执行功能语句1
false 执行功能语句2
例如:
// 判断一个成绩分数 如果成绩分数大于90 输出 优秀 其它输出 继续努力
//定义成绩
int score = 68;
//判断成绩是否满足
if(score>=90){
System.out.println("优秀");
}else{
System.out.println("继续努力");
}
语法3:if...else if结构
适用于多条件的判断
else if 根据实际情况判断,可使用多条
只执行符合条件的第一个代码块
if(boolean值1){
//功能语句1
}else if(boolean值2){
//功能语句2
}else if(boolean值3){
//功能语句3
}else if(boolean值4){
//功能语句4
}else if(boolean值5){
//功能语句5
}
例如:
// 判断一个成绩分数 如果成绩分数大于90 输出 优秀 80~90良好 70~80中等 60~70 及格
//定义成绩
int score = 68;
//判断成绩是否满足
if(score>90){
System.out.println("优秀");
}else if(score>80&&score<=90){
System.out.println("良好");
}else if(score>70&&score<=80){
System.out.println("中等");
}else if(score>60&&score<=70){
System.out.println("及格");
}
boolean值1: true 执行功能语句1
boolean值2: true 执行功能语句2
boolean值3: true 执行功能语句3
boolean值4: true 执行功能语句4
if(boolean值1){
//功能语句1
}else if(boolean值2){
//功能语句2
}else if(boolean值3){
//功能语句3
}else if(boolean值4){
//功能语句4
}else if(boolean值5){
//功能语句5
}else{
//当输入的值 不在上面的区间 执行这一条语句
}
例如:
/*
判断一个成绩分数 如果成绩分数大于90 输出 优秀 80~90良好 70~80中等 60~70 及格 其他的输出 需要 好好加油啦
*/
//定义成绩
int score = 68;
//判断成绩是否满足
if(score>90){
System.out.println("优秀");
}else if(score>80&&score<=90){
System.out.println("良好");
}else if(score>70&&score<=80){
System.out.println("中等");
}else if(score>60&&score<=70){
System.out.println("及格");
}else{
System.out.println("继续加油啦");
}
2.swtich选择结构
大多数用于 有固定取值的场景
以后在工作中 多是枚举和swich联合使用
2.1 swich的常规语句
switch(key){
case变量可能的值v1:
执行语句;
break;
case变量可能的值v2:
执行语句;
break;
case变量可能的值:
执行语句;
break;
defult:
执行语句;
break;
}
key:byte short shar int enum枚举 String
v1,v2: key这个变量可能的取值
break:就是其结束符号,如果后面没有case就会继续往下执行,直到遇到break才会停下来
例如:
public class _06Switch {
public static void main(String[] args) {
String week = "星期八";
switch (week){
default:
System.out.println("没有这个选项");
case "星期一":
System.out.println("学习Java编程");
case "星期二":
System.out.println("打篮球");
break;
case "星期三":
System.out.println("洗脚");
case "星期四":
System.out.println("保健");
case "星期五":
System.out.println("九眼桥逛一逛 339 ");
case "星期六":
System.out.println("约会");
case "星期天":
System.out.println("健身休息");
}
}
}
三.循环结构
进行循环执行的
1.for循环结构
使用场景:一般用于编程人员知道循环次数的情况下
语法结构:
for( ①初始化语句 ;②条件判断语句 ;③循环后执行语句 ){
//④循环体
}
执行顺序:
第一次循环:①---> ② ----> true -----> ④-------> ③
第二次循环: ② ----> true -----> ④-------> ③
第三次循环: ② ----> true -----> ④-------> ③
第四次循环: ② ----> true -----> ④-------> ③
....
第n次循环: ② ----> false ----->结束循环
for(int j =1;j++<=20;j+=2){
System.out.println(++j); 3 7 11 15 19
}
问:
1.循环几次? 5
2.输出多少? 3 7 11 15 19
3.判断几次? 6
4.最终j的值是多少? 22
for循环输出1-50之间3的倍数的数字?
嵌套for循环
最多两层 过多执行次数太多 效率太慢
需求:
嵌套for
for(){
for(){
for(){
}
}
}
printlin: ln 就是换行的意思
例如:
public class _02DoubleFor {
public static void main(String[] args) {
/*
System.out.println("*****");
System.out.println("*****");
System.out.println("*****");
System.out.println("*****");
System.out.println("*****");
*/
//解决的打印多少行的问题
for (int i = 1;i<=10;i++) {
// System.out.println("*****");
for (int j =1;j<=5;j++){ //每行打印多少个的问题
System.out.print("*");
}
//每行打印结束以后换行
System.out.println();
}
System.out.print("*");
System.out.print("*");
System.out.print("*");
System.out.print("*");
System.out.print("*");
for (int j =1;j<=5;j++){
System.out.print("*");
}
2.while循环结构
使用场景:一般用于不知道循环次数的场景
语法结构:
while(①boolean值){
//②循环功能体
}
执行顺序:
第一次循环:①------>true------>②
第二次循环:①------>true------>②
第三次循环:①------>true------>②
....
第n次循环:①------>false------>终止循环
例如:
public class Work4_1while {
public static void main(String[] args) {
//while循环1-50之间是3的倍数有哪些数字
int i = 1;
while (i <= 50) {
if (i % 3 == 0) {
System.out.println(i);
}
i++;
}
}
}
---------------------------------------------------------------
public class Work4_2while {
public static void main(String[] args) {
//while循环计算出1-50之间是3的倍数的个数
int count= 0;
int i = 1;
while(i<=50) {
if (i % 3 == 0) {
count++;
}
i++;
System.out.println(count);
}
}
}
---------------------------------------------------------------
public class Work4_3while {
public static void main(String[] args) {
// 3.while循环计算1-50之间3的倍数的数字之和?
int sum = 0;
int i = 1;
while(i<=50){
if (i % 3 ==0){
System.out.println(i);
}
// 如果i是3的倍数
i++;
sum+=i;
System.out.println(sum);
}
}
}
3.do...while循环结构
语法结构
do{
//循环的功能体
}while(boolean)
判断循环条件是否为true,如果true,执行do后执行语句,如果为false终止循环
4.循环控制语句
在循环的过程中对循环进行一个控制
break:
结束当前循环/提前的终止
continue:
跳过本次循环,直接进入下一次循环
return:
结束当前方法【同时也就包括当前的循环】