1. 顺序结构
常见的逻辑结构,一行行往下写。
2. 分支结构
2.1 if语句
//形式一
if(布尔表达式){
//条件满足时执行的代码
}
//形式二
if(布尔表达式){
//条件满足时执行的代码
}else{
//条件满足时执行的代码
}
//形式三:多分支
if(布尔表达式){
//条件满足时执行的代码
}else if(布尔表达式){
//条件满足时执行的代码
}else{
//条件满足时执行的代码
}
注意:
1.在多分支的情况中,if(a)……if(b)……当有一种表达式同时满足a和b时,此时这两个分支代码都会执行,而if(a)……else if(b)……表达式只会执行一个分支代码块。
2.垂悬else问题:当if/else语句中没有加大括号,此时遵循程序的最近匹配原则。
2.2 swich语句
switch(整数|枚举|字符|字符串){
case 内容1 : {
内容满足时执行语句;
[break;]
}
case 内容2 : {
内容满足时执行语句;
[break;]
}
...
default:{
内容都不满足时执行语句;
[break;]
}
}
注意:
1.执行swich语句时,遇见break就会结束该case语句,如果swich语句中没有匹配的case,就会执行default中的语句。
2.不写break的时候,case会从满足条件的分支开始依次向下执行,失去”多分支选择“的效果。
3.swich语句中的值整数|枚举|字符|字符串
3. 循环结构
3.1 while循环
while(循环条件){
循环语句;
}
注意:循环条件为true执行循环语句,否则结束循环。
3.2 break与continue
break的功能是让循环提前结束;
continue的功能只是跳过这次循环,立即进入下一次循环。
3.3 for循环
for(表达式1;表达式2;表达式3){
循环体;
}
注意:表达式1:
用于初始化循环变量
.;表达式2:
循环条件;表达式3:
更新循环变量;
1,2,3不一定都定义,可以为空。
4. 输入与输出
4.1 输入(!!)
使用Scanner:需要导入util包
1.使用Scanner读取字符串/整数/浮点数
import java.util.Scanner; // 需要导入 util 包
Scanner sc = new Scanner(System.in);
System.out.println("请输入你的姓名:");
String name = sc.nextLine();
System.out.println("请输入你的年龄:");
int age = sc.nextInt();
System.out.println("请输入你的工资:");
float salary = sc.nextFloat();
System.out.println("你的信息如下:");
System.out.println("姓名: "+name+"\n"+"年龄:"+age+"\n"+"工资:"+salary);
sc.close(); // 注意, 要记得调用关闭方法
2.使用Scanner循环读取N个数字
Scanner sc = new Scanner(System.in);
double sum = 0.0;
int num = 0;
//此时读取多个double类型的数据
while (sc.hasNextDouble()) {
double tmp = sc.nextDouble();
sum += tmp;
num++;
}
System.out.println("sum = " + sum);
System.out.println("avg = " + sum / num);
sc.close();
注意:循环输入多个数据时,使用ctrl+d来结束输入。
4.2 输出
System.out.println(msg); // 输出一个字符串, 带换行
System.out.print(msg); // 输出一个字符串, 不带换行
System.out.printf(format, msg); // 格式化输出