if语句
单一条件:
if(布尔表达式A){
语句B
}
A为true 执行B,否者不执行
可以省略if语句的花括号,编译器在识别代码时默认添加,只括if语句下一行代码,一般 不会省略使用花括号提高代码可阅读性
二选一
if(布尔表达式A){
语句B
}else{
语句C
}
如果A为true,执行B,否则执行C,B和C无论如何都会执行其中一个多分支
if(布尔表达式A){
语句B
}else if(布尔表达式A1){
语句B1
}else if(布尔表达式A2){
语句B2
}..
else{
语句B3
}
如果A为true,执行B,后续代码不在判断,if语句结束;如果A为false,继续判断A1,如果A1为true,执行B1,if语句结束else匹配所有不满足条件的情况下执行B3
switch语句
switch(表达式X){
* case 常量:
* 语句块A;
* break;
* case 常量:
* 语句块B;
* break;
* ...
* default:
* 语句块B;
*
* }
* 执行顺序:
* switch一旦碰到第一次case匹配,程序就会跳转到这个标签位置,
* 开始顺序执行以后所有的程序代码,而不管后面的case条件是否匹配,
* 直到碰到break关键字或者结束switch语句的大括号为止
*
* ①case只能是常量不能是变量或表达式
* ②表达式x的值只可以接受四个基本数据类型和对应包装类(int、byte、char、short),枚举型,jdk1.7之后表达式x可以接受String
* ③switch case中的值必须要与switch表达式的值具有相同的数据类型
* ④不允许有重复的case取值
* ⑤switch的结束:遇到break才结束否者直到switch语句块结束
* ⑥case之间与default没有顺序。先判断所有的case,没有匹配的case执行default。因此一般将default放在case后面
接收控制台输入
接收控制台输入
Scanner sc=new Scanner(System.in);
接收控制台输入的整型
int messageInt=sc.nextInt();//这个方法会阻塞,当你在控制台输入数据并按下回车键阻塞解除
接收制台输入的浮点型
double messageDouble=sc.nextDouble();//这个方法会阻塞,当你在控制台输入数据并按下回车键阻塞解除
接收制台输入的字符串 :得到用户输入的字符串,空格结束
String messageString=sc.next();//这个方法会阻塞,当你在控制台输入数据并按下回车键阻塞解除
String message=sc.nextLine();//这个方法会阻塞,当你在控制台输入数据并按下回车键阻塞解除
for循环
* 语法:
* for(初始化表达式A;判断表达式B;循环后的操作表达式C){
* 语句D
* }
*
* 执行顺序:
* ①A先执行,A只会执行一次
* ②执行B,如果B为true,执行D,再执行C
* ③C执行完之后再执行B,如果B为true再执行D..
* 往复循环直到B为false循环表达式结束
while和do while循环
* while语法:
* while(判断表达式A){
* 语句B
* }
*
* 执行顺序:
* ①A先执行
* ②执行A,如果A为true,执行B
* 往复循环直到A为false循环表达式结束
* do... while语法:
* do{
* 语句A
* }while(判断表达式B);
*
* 执行顺序:
* ①A先执行
* ②执行A,再判断B,如果B为true,再次执行A
* 往复循环直到B为false循环表达式结束
* do...while至少会执行一次,不管while条件是否为true
循环中断
break:跳出当前循环;直接结束循环
continue:跳出本次循环执行下一次循环