注:此篇大部分语法与C语言相同,可以参考我的博客:C语言——分支与循环
顺序结构即机器按照代码书写的顺序进行执行
分支结构 if elseif(布尔表达式1){
// 语句1
} else if(布尔表达式2){
// 语句2
} else {
// 语句3
}
注意:
Java与c语言不同,if中必须是布尔表达式,不能用if(1)这样的语句
可以只有if,或者只有if else ,else if可以有多个
if后面的表达式后面不要有分号
最好把每一个应该写的大括号都写上
switch(表达式){
case 常量值1:{
//语句1;
break;
}
case 常量值2:{
语句2;
break;
}
default:{
//case1,2都不满足时执行语句;
break;
}
}
可以省略case后面的括号
执行顺序:
先计算switch后面表达式的值,然后与每个case后面的常量值进行比较,相同则进入循环,直到遇到break才停止,若没有匹配的值,则执行default后面的语句
注意:
case后面的值不能相同
switch case语句满足的数据类型如下:
byte char short int String 枚举
switch语句支持嵌套
while(循环条件){
//循环语句;
}
和if一样,while后面必须是一个布尔表达式
若循环条件为真,则执行循环语句,否则不进入循环
最好每个循环都套上大括号
while后面的表达式后面不要多写分号
在循环中加入break则可以在遇到时跳出循环
具体逻辑参考C语言
在循环中加入continue则可以在遇到时不执行continue以下的代码,直接进行下一次循环
具体逻辑参考C语言
for(表达式1;布尔表达式1;表达式2){
//循环语句;
}
表达式1:用来初始化变量循环条件
布尔表达式:判断表达式是否继续执行
表达式2:更改循环变量的值,使其越来越接近判断表达式的值
do{
//循环语句;
}while(循环条件);
先执行一次do中的内容,若循环条件为真,则循环do中的内容,否则停止循环
注意:
while后面需要写分号
System.out.println(str); // 输出一个字符串, 带换行 System.out.print(str); // 输出一个字符串, 不带换行 System.out.printf(format, str); // 格式化输出
格式化输出参照表:
| 转换符 | 类型 | 举例 | 输出 |
|---|---|---|---|
| d | 十进制整数 | (“%d”,100) | 100 |
| x | 十六进制整数 | (“%x”,100) | 64 |
| o | 八进制整数 | (“%o”,100) | 144 |
| f | 定点浮点数 | (“%f”,100f) | 100.000000 |
| e | 指数浮点数 | (“%e”,100f) | 1.000000e+02 |
| g | 通用浮点数 | (“%g”,100f) | 100.000 |
| a | 十六进制浮点数 | (“%a”,100) | 0x1.9p6 |
| s | 字符串 | (“%s”,100) | 100 |
| c | 字符 | (“%c”,‘1’) | 1 |
| b | 布尔值 | (“%b”,100) | true |
| h | 散列码 | (“%h”,100) | 64 |
| % | 百分号 | (“%.2f%%”,2/7f) | 0.29% |
import java.util.Scanner; // 需要导入 util 包
Scanner sca = new Scanner(System.in);
System.out.println("姓名:");
String name = sca.nextLine();
System.out.println("年龄:");
int age = sca.nextInt();
System.out.println("工资:");
float salary = sca.nextFloat();
sca.close(); // 调用关闭方法
循环输入
Scanner sca = new Scanner(System.in);
while (sca.hasNextInt()) {
int tmp = sca.nextInt();
}
sca.close
注意:
Windows 上使用 ctrl + z, Linux / Mac 上使用 ctrl+ d来结束循环



