Java的基础语法(三)
一、数据输入
1.1数据输入概述
使用Java提供的类来实现数据输入。
1.2Scanner使用的基本步骤
- 导包
import java.util.Scanner;
导包的动作必须出现在类的定义的上边 - 创建对象
Scanner sc = new Scanner(System.in);
上面这个格式里面,只有sc是变量名,可以变,其他的都不允许。 - int i = sc.nextInt();
上面这个格式里,只有i是变量名,可以变,其他都不允许变。
1.3案例:三个和尚
- 身高未知,采用键盘输入,首先导包,然后创建对象。
import java.util.Scanner;
Scanner sc = new Scanner(System.in); - 键盘录入三个身高分别赋值给三个变量。
int height1 = sc.nextInt();
int height2 = sc.nextInt();
int height3 = sc.nextInt(); - 用三元运算符获取前两个和尚的较高身高值并用临时身高保存,
再比较临时身高和第三个和尚的身高找出三个和尚身高的最大值。
二、流程控制
2.1流程控制语句概述
- 顺序结构
- 分支结构(if,switch)
- 循环结构(for,while,do{}while)
2.2顺序结构
顺序结构按照代码的先后顺序,依次执行。
三、if语句
3.1 if语句格式1
- 格式一:
if(关系表达式){
语句体;
}
首先计算关系表达式的值,如果关系表达式的值为true就执行语句体,
如果关系表达式的值为false就不执行语句体,继续执行后面的语句内容。
3.2 if语句格式2
- 格式二:
if(关系表达式){
语句体1;
}else{
语句体2;
}
首先计算关系表达式的值,如果关系表达式的值为true就执行 语句体1,
如果关系表达式的值为false就执行语句体2,继续执行后面的语句内容。
3.3 if语句格式3
- 格式三:
• if(关系表达式1){
语句体1;
}else if(关系表达式2){
语句体2;
}
…
else{
语句体n+1;
}
首先计算关系表达式1的值,如果关系表达式的值为true就执行语句体1,
如果关系表达式的值为false就计算关系表达式2的值,
如果关系表达式的值为false就计算关系表达式3的值,…
如果没有任何关系表达式的值为true,就执行语句体n+1。
四、switch语句
4.1switch语句格式
格式:
switch(表达式){
case值1:
语句体1;
break;
case值2:
语句体2;
break;
…
default:
语句体n+1;
[break;]
}
格式说明:
- 表达式:取值为byte、short、int、char,JDK5以后可以是枚举,JDK7以后可以是String。
- case:后面跟的是要和表达式进行比较的值。
- break:表示中断,结束的意思,用来结束switch语句。
- default:表示所有情况都不匹配的时候就执行该处的内容,和if语句中的else相似。
五、循环语句
5.1循环结构
循环结构的组成部分:
初始化语句:用于表示循环开启时的起始状态。可以是一条或者多条语句。
条件判断语句:用于循环反复执行的条件。这里使用一个结果值为boolean类型的表达式。
循环体语句:用于表示循环反复执行的内容。
条件控制语句:用于表示循环执行中每次变化的内容,
简单说就是控制循环是否能执行下去。
5.2for循环语句格式
格式:
for(初始化语句;条件判断语句;条件控制语句){
循环体语句;
}
- 执行初始化语句
- 执行条件判断语句,看结果是false还是true再判断是否执行
- 执行循环体语句
- 执行条件控制语句
- 回到条件判断语句继续
案例1:求偶数和
求1-100之间的偶数和
int sum = 0;
for(int i = 1;i <= 100;i++){
if(i % 2 ==0){
sum += i;
}
}
5.3 while循环语句格式
格式:
初始化语句;
while(条件判断语句){
循环体语句;
条件控制语句;
}
执行流程:
- 执行初始化语句
- 执行条件判断语句,看结果再决定是否执行下一步
- 执行循环体语句
- 执行条件控制语句
- 回到条件判断语句继续
5.4 do…while循环语句
格式:
初始化语句;
do{
循环体语句;
条件控制语句;
}while(条件判断语句);
执行流程:
- 执行初始化语句
- 执行循环体语句
- 执行条件控制语句
- 执行条件判断语句,看结果是false还是true
- 回到循环体语句继续
do…while语句循环体至少执行一次。
5.4三种循环的区别
- for和while循环先判断条件是否成立再决定是否执行循环体
- do…while先执行一次循环体,然后再判断条件是否成立,是否继续执行循环体
- for和while的区别:
条件控制语句所控制的自增变量,因为归属for循环的语法结构中,在for循环结束后,就不能再次被访问到了。
条件控制语句所控制的自增变量,对于while循环来说不归属其语法结构中,在while循环结束后,该变量还可以继续使用。
三种循环的死循环格式:
for(;😉{}
while(true){}
do{}while(true);
六、跳转控制语句
6.1跳转控制语句概述
- continue用在循环中,基于条件控制,跳过某次循环体的内容的执行,继续下一次的执行。
- break用在循环中,基于条件控制,终止循环体内容的执行,也就是结束当前的整个循环。
七、循环嵌套
7.1循环嵌套概述
语句结构:
- 顺序语句:以分号结尾,表示一句的结束
- 分支语句:一对大括号表示if或switch的整体结构,整体描述一个完整的if语句。
- 循环语句:一对大括号表示的循环的整体结构,整体描述一个完整的循环语句。
任何语句对外都可以看作是一句代码,
分支语句中包含的分支语句称为分支嵌套,
循环语句中包含的循环语句称为循环嵌套。
八、Random
作用:用于产生一个随机数
使用步骤:
- 导包:import java.util.Random;
导包必须在类定义上面 - 创建对象:Random r = new Random();
r是变量名,可以变。其他不能变。 - 获取随机数:int number = r.nextInt(10);//获取数据的范围:[0,10)。包括0,不包括10。
number是变量名,可以变。数字10可以变。其他不能变。
例:获取1-100之间的随机数
int x = r.nextInt(100) + 1;