目录
1.顺序结构
顺序结构就是按照代码正常的一行一行向下执行命令
System.out.println("蜜");
System.out.println("蜂");
//结果
//蜜
//蜂
System.out.println("蜂");
System.out.println("蜜");
//结果
//蜂
//蜜
2.分支结构
2.1if语句
1.单分支表达式:
if(布尔表达式){
// 语句
}
2.双分支表达式:
if(布尔表达式){
// 语句1
}else{
// 语句2
}
3.多分支表达式:
if(布尔表达式1){
// 语句1
}else if(布尔表达式2){
// 语句2
}else{
// 语句3
}
注意,if的后面一定不能有分号,因为这会导致分号成为了 if 语句的语句体, 而 { } 中的代码已经成为了和一个 if 无关的代码块.
2.2switch语句
基本语法
switch(表达式){
case 常量值1:{
语句1;
[break;]
}
case 常量值2:{
语句2;
[break;]
}
...
default:{
内容都不满足时执行语句;
[break;]
}
}
执行流程:
1. 先计算表达式的值
2. 和case依次比较,一旦有响应的匹配就执行该项下的语句,直到遇到break时结束
3. 当表达式的值没有与所列项匹配时,执行default。
4.case后面的内容要跟Switch的参数形式保持一致
【注意事项】
1.多个case后的常量值不可以重复
2.switch的括号内只能是以下类型的表达式:
- 基本类型:byte、char、short、int,注意不能是long类型
- 引用类型:String常量串、枚举类型
3.break 不要遗漏, 否则会失去 "多分支选择" 的效果
4.break 不要遗漏, 否则会失去 "多分支选择" 的效果
5.switch 虽然支持嵌套, 但是很丑,一般不推荐
3.循环结构
一共有三种结构,分别是while、for和do…while
3.1while循环
基本格式:
while(循环条件){
循环语句
}
循环条件为true则执行循环语句,否则结束循环
练习:计算1到100的和
int a=1;
int num=0;
while(a<=100){
num+=a;
a++;
}
System.out.println(num);
注意事项
1. 和 if 类似, while 下面的语句可以不写 { } , 但是不写的时候只能支持一条语句. 建议还是加上 { }
2. 和 if 类似, while 后面的 { 建议和 while 写在同一行.
3. 和 if 类似, while 后面不要多写 分号, 否则可能导致循环不能正确执行.
3.2break
break 的功能是让循环提前结束。
3.3continue
continue 的功能是跳过这次循环, 立即进入下次循环。
代码示例: 找到 100 - 200 中所有 3 的倍数
//代码示例: 找到 100 - 200 中所有 3 的倍数
int a=99;
while (a<=200){
a++;
if(a%3==0){
System.out.println(a);
}
else
continue;
}
3.4for循环
1.基本语法
for(表达式①;布尔表达式②;表达式③){
表达式④;
}
- 表达式1: 用于初始化循环变量初始值设置,在循环最开始时执行,且只执行一次
- 表达式2: 循环条件,满则循环继续,否则循环结束
- 表达式3: 循环变量更新方式
示例:计算 1 - 100 的和
//计算 1 - 100 的和
int num=0;
for (int i = 0; i < 101; i++) {
num+=i;
}
System.out.println(num);
【注意事项】
1. 和 if 类似, for 下面的语句可以不写 { } , 但是不写的时候只能支持一条语句. 建议还是加上 { }
2. 和 if 类似, for 后面的 { 建议和 while 写在同一行.
3. 和 if 类似, for 后面不要多写 分号, 否则可能导致循环不能正确执行.
4. 和while循环一样,结束单趟循环用continue,结束整个循环用break。
3.5do…while(很少用)
基本语法:
do{
循环语句
}while(判断语句)
注意事项
1. do while 循环最后的分号不要忘记
2. 一般 do while 很少用到, 更推荐使用 for 和 while
4.输入输出
4.1输出到控制台
基本语法:
System.out.println(msg); // 输出一个字符串, 带换行
System.out.print(msg); // 输出一个字符串, 不带换行
System.out.printf(format, msg); // 格式化输出
println 输出的内容自带 \n, print 不带 \n
printf 的格式化输出方式和 C 语言的 printf 是基本一致的.
示例
System.out.println("hello world");
int x = 10;
System.out.printf("x = %d\n", x)
4.2 从键盘输入
在使用之前,需要先导入util包,只需要在需要位置使用时输入Scanner sc = new Scanner(System.in);再单机回车就会自动导入了。
Scanner sc = new Scanner(System.in);
System.out.println("请输入你的姓名:");
String name = sc.nextLine();
//nextLine读取下一行输入的内容,包括空格
System.out.println("请输入你的年龄:");
int age = sc.nextInt();
//读取下一个输入的整数,不能包含空格
System.out.println("请输入你的工资:");
float salary = sc.nextFloat();
//读取下一个输入的float类型的数据
System.out.println("你的信息如下:");
System.out.println("姓名: "+name+"\n"+"年龄:"+age+"\n"+"工资:"+salary);
sc.close(); // 注意, 要记得调用关闭方法
注意事项: 当循环输入多个数据的时候, 使用 ctrl + z 来结束输入 (Windows 上使用 ctrl + z, Linux / Mac 上使用 ctrl+ d)。
5.练习
接下来利用本节的知识编写一个简单的游戏:猜数字。
这里需要用到Scanner进行输入数据,还需要用到Random生成随机数,具体如下:
//实现猜数字
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
Random random = new Random();
int randNum = random.nextInt(100);
while (true) {
int num = scan.nextInt();
if (num > randNum) {
System.out.println("猜大了");
continue;
} else if (num < randNum) {
System.out.println("猜小了");
continue;
} else {
System.out.println("猜对了");
break;
}
}
}