day033
1.控制语句
-
顺序结构
-
选择结构[分支结构]
- if,if…else
- switch
-
循环结构
- for
- while
- do…while()
-
控制循环的语句
- break【跳出当前循环】
- continue【从其调用处跳至循环的开始处,提前进入下一次循环】
// - return【其之后的语句将不再执行】
System.out.println();负责向控制台输出【从内存到输出台,输出的过程,这是从内存中出来了】
接受用户键盘输入,从"键盘"到"内存"。【输入的过程,到内存中去】
以下代码先不要问为什么!固定编码写就可以接受用户键盘的输入。//第一步:创建键盘扫描器对象
*** java.util.Scanner s = new java.util.Scanner(System.in);//第二步:调用Scanner对象的next()方法开始接受用户键盘输入
//程序执行到这里会停下来,等待用户的输入
//当用户输入的时候,并且最终敲回车键的时候,键入的信息会自动赋值给userInputContent
//程序执行到这里,用户输入的信息已经到内存中了。
//接受文本【以字符串的形式接收】
String userInputContent = s.next(); //标识符的命名规范:见名知意//接收数字【以整型数int的形式来接受】
int num = s.nextInt();//将内存中的数据输出到控制台
System.out.println(“您输入了:” + userInputContent);System.out.println(“您输入了的数字是:” + num);
System.out.println(“计算结果:” + (num +100));总结:记住代码,或者直接将代码复制粘贴
第一步:
java.util.Scanner s = new java.util.Scanner(System.in);
第二步:
String str = s.next();
或
int num = s.nextInt();
2.关于java语句当中的if语句,属于选择结构,if语句又被称为分支语句/条件控制语句:
-
if语句的语法结构:四种编写方式
第一种:
if(布尔表达式){
java语句;
java语句;
java语句;
java语句;
…
}第二种:
if(布尔表达式){
java语句;
java语句;
…
}else{
java语句;
java语句;
…
}第三种:
if(布尔表达式){
java语句;
java语句;
…
}else if(布尔表达式){
java语句;
java语句;
…
}else if(布尔表达式){
java语句;
java语句;
…
}else if(布尔表达式){
java语句;
java语句;
…
}…第四种:
if(布尔表达式){
java语句;
java语句;
…
}else if(布尔表达式){
java语句;
java语句;
…
}else if(布尔表达式){
java语句;
java语句;
…
}else if(布尔表达式){
java语句;
java语句;
…
}else{
java语句;
java语句;
…
} -
重点:对于java中的if语句来说,只要有一个分支执行,整个if语句全部结束。
-
注意:以上的第二种编写方式和第四种编写方式都带有else分支,这两种方式可以100%保证会有分支执行。
-
"所有的控制语句"都是可以嵌套使用的。只要合理嵌套就行。
注意:嵌套使用的时候,代码格式要保证完美。【该缩进的时候必须缩进,大部分情况下使用
大括号包围的需要缩进】 -
if语句的分支只有一条java语句的话,大括号可以省略不写。
if(true/false){
一条java语句;
}if(true/false)一条java语句;
这种方式不推荐使用,别人这么写能看懂就行。
-
if(sex)
System.out.println(“男”);
System.out.println(“呵呵”);
else
System.out.println(“女”);
//以上程序中编译错误出现在136行。else缺少if。
例子1: 使用以下这种方式可以完成需求,但是这种方式效率较低,每一个if都是不相关的,都是独立的,每一个
if都会判断一次。
if(){
}
if(){
}
if(){
}
//根据需求决定选择以上的第四种结构完成需求
if(score < 0 || score > 100){
System.out.println("对不起,您提供的考生成绩不合法");
}else if(score >= 90 && score <= 100){ //没必要判断是否小于等于100,能执行到这里一定<=100
} if(score < 0 || score > 100){
System.out.println("对不起,您提供的考生成绩不合法");
}else if(score >= 90){
System.out.println("该考生的成绩等级是:A等级");
}else if(score >= 80){ //能够判断到这里说明成绩一定小于90分的
System.out.println("该考生的成绩等级是:B等级");
}else if(score >=70){
System.out.println("该考生的成绩等级是:C等级");
}else if(score >=60){
System.out.println("该考生的成绩等级是:D等级");
}else {
System.out.println("该考生的成绩等级是:E等级");
}
例子2:
需求:假设系统给定一个人的年龄(这个年龄需要从键盘输入),根据年龄来判断这个人处于生命的哪个阶段,年龄必须在[0-150]
[0-5] 幼儿
[6-10] 少年
[11-18] 青少年
[19-35] 青年
[36-55] 中年
[56-150] 老年
public class IfTest02
{
public static void main(String[] args){
//1. 接收键盘输入:年龄【输入的时候必须输入数字】
java.util.Scanner s = new java.util.Scanner(System.in);
System.out.print("请输入您的年龄:"); //输出提示信息,要不然用户根本不知道这里要干嘛!
int age = s.nextInt(); //停下来等待用户的输入,输入之后自动接收,赋值给age变量。
System.out.println("age = " + age);
//2.根据需求进行业务逻辑判断
String str = "您处于生命周期的老年阶段";
if(age < 0 || age >150){
str = "您提供的年龄不合法,年龄值需要在[0-150]之间";
}else if(age <= 5){
str = "您处于生命周期的幼儿阶段";
}else if(age <= 10){
str = "您处于生命周期的少年阶段";
}else if(age <= 18){
str = "您处于生命周期的青少年阶段";
}else if(age <= 35){
str = "您处于生命周期的青年阶段";
}else if(age <= 55){
str = "您处于生命周期的中年阶段";
}
System.out.println(str);
}
}
3.关于switch语句:
* switch语句也属于选择结构,也是分支语句
* switch语句的语法结构:
一个比较完整的switch语句应该这样编写:
switch(int或String类型的字面值或变量){
case int或String类型的字面值或变量 :
java语句;
java语句;
...
break;
case int或String类型的字面值或变量 :
java语句;
java语句;
...
break;
case int或String类型的字面值或变量 :
java语句;
java语句;
...
break;
case int或String类型的字面值或变量 :
java语句;
java语句;
...
break;
...
default :
java语句;
...
} * switch语句的执行原理:
switch后面小括号当中的"数据"和"case"后面的数据进行一一匹配,匹配成功的分支执行。
按照自上而下的顺序依次匹配。
* 匹配成功的分支执行,分支当中最后有"break;"语句的话,整个switch语句终止。
* 匹配成功的分支执行,分支当中最后没有"break;"语句的话,直接进入下一个分支执行(不进行匹配),
这种现象被称为case穿透现象。【提供break;语句可以避免穿透】
* 所有分支都没有匹配成功,当有default语句的话,会执行default分支当中的程序。
* switch后面和case后面只能是int或者String类型的数据,不能是其他类型。
*** 当然,byte,short,char也可以直接写到switch和case后面,因为它们可以进行自动类型转换。
byte,short,char可以自动转换成int类型。
JDK6的,switch和case后面只能探测int类型的数据。
JDK7之后包括7版本在内,引入新特性,switch关键字和case关键字后面可以探测int或者String类型的数据。
* case可以合并:
int i = 10;
switch(){
case 1: case 2: case 3: case 10:
System.out.println("Test Code!");
}
//编译报错
long x = 100L;
switch(x){}
//解决编译错误
long x = 100L;
switch((int)x){}