目录
第三章 流程控制
一、键盘录入
java.util.Scanner键盘扫描器,可以接收从键盘录入的数据。
使用步骤:
import java.util.Scanner;
public class Demo{
public static void main(String[] args){
//1.创建扫描器
Scanner in = new Scanner(System.in);
//2.提示信息
System.out.println("请输入数据:");
//3.从键盘接收数据
int a = in.nextInt();//接收int类型数据
//接收其他类型数据:
byte b = in.nextByte();
double d = in.nextDouble();
boolean boo = in.nextBoolean();
//....
//接收字符串:
String s = in.next();//遇到空白字符结束,不会接收空白字符
String s1 = in.nextLine();//遇到enter键结束。会接收一个回车键。注意nextLine接收数据之前不要使用其他方式接收数据,否则会直接接收之前的回车键。
}
}
二、流程控制
我们在程序中可以通过流程控制语句实现对程序执行流程的控制。常见的程序流程结构有:
-
顺序结构 :代码自上而下顺序执行。
-
分支结构,选择结构: 根据条件执行某部分代码
-
循环结构:重复执行某些代码
三、分支结构if语句
-
if语句格式一:
if(关系表达式){ 语句体; }
-
if语句格式二:
if(关系表达式) { 语句体1; }else { 语句体2; }
-
if语句格式三:
if (判断条件1) { 执行语句1; } else if (判断条件2) { 执行语句2; } ... }else if (判断条件n) { 执行语句n; }else { 执行语句n+1; }
四、分支结构switch语句
-
语法格式:
switch(表达式){
case 常量值1:
语句块1;
break;
case 常量值2:
语句块2;
break;
...
default:
语句块n+1;
break;
}
-
执行流程:小括号内结果与case后的常量值匹配,那么执行这个case后的代码。如果都不匹配执行default分支。
-
使用注意事项:
-
小括号内的表达式结果类型只能是6种之一:byte,short,char,int,String,枚举
-
case后的常量值不能重复
-
break用于跳出switch语句,如果case没有执行break会直接继续执行下一个case的代码---穿透性。
-
-
示例:
int season = 2;
switch(season){
case 1:
System.out.println("春季");
break;
case 2:
System.out.println("夏季");
break;
case 3:
System.out.println("秋季");
break;
case 4:
System.out.println("冬季");
break;
default:
System.out.println("没有这个季节");
break;
}
五、循环结构语句
1.for循环
-
格式:
for(初始化语句①; 循环条件语句②; 迭代语句④){
循环体语句③
}
//执行流程:1234 234 234 ... 2
for(;;){
循环体语句块;//如果循环体中没有跳出循环体的语句,那么就是死循环
}
2.示例:
for(int i=0;i<5;i++){
System.out.println(i);
}
//01234
2.while循环
-
格式:
while (循环条件语句①) { 循环体语句②; } //执行流程: 12 12 12 ...1 while(true){ 循环体语句;//如果此时循环体中没有跳出循环的语句,也是死循环 }
-
示例:
int i = 0; while(i<5){ System.out.println(i); i++; } //01234
3.do...while循环
-
格式:
do { 循环体语句①; } while (循环条件语句②); //执行流程:12 12 12 ... 2
-
示例:
int i = 0; do{ System.out.println(i); i++; }while(i<5); //01234
4.循环语句的区别
-
从循环次数角度分析
-
do...while循环至少执行一次循环体语句
-
for和while循环先判断循环条件语句是否成立,然后决定是否执行循环体,至少执行零次循环体语句
-
从循环变量的生命周期角度分析
-
for循环的循环变量在for()中声明的,在循环语句结束后,不可以被访问;
-
while和do...while循环的循环变量因为在外面声明的,所以while和do...while结束后可以被继续使用的;
-
如何选择
-
遍历有明显的循环次数(范围)的需求,选择for循环
-
遍历没有明显的循环次数(范围)的需求,循环while循环
-
如果循环体语句块至少执行一次,可以考虑使用do...while循环
-
本质上:三种循环之间是可以互相转换的,都能实现循环的功能
-
-
三种循环结构都具有四要素:
-
(1)循环变量的初始化表达式
-
(2)循环条件
-
(3)循环变量的修改的迭代表达式
-
(4)循环体语句块
-
死循环比较
-
for(;;){循环体} ,除循环体外不需要执行其他语句,性能略高
-
while(true){ 循环体},除循环体外还需要执行小括号里的表达式
六、关键字break和continue
-
break关键字的应用场景与作用
-
应用在switch语句中:用于跳出switch语句
-
应用在循环语句中,用于跳出当前循环体(结束当前循环)
-
-
continue关键字的应用场景与作用
-
应用在循环语句中,用于结束本次循环,继续执行下一次循环
-
-
示例:
for(int i=0;i<5;i++){
if(i==2){
break;//结束当前循环
}
System.out.println(i);
}
//01
for(int i=0;i<5;i++){
if(i==2){
continue;//结束本次循环
}
System.out.println(i);
}
//0134
七、循环嵌套使用
//外循环控制行数
for(int i=0;i<5;i++){
//内循环控制列数
for(int j=0;j<=i;j++){
System.out.print("*")
}
System.out.println();//换行
}
/*
*
**
***
****
*****
*/
需要第三章完整学习笔记可以关注私信我哦