1.程序的逻辑控制
什么是控制语句呢?
官方的解释是这样的:控制语句即用来实现对程序流程的选择、循环、转向和返回等进行控制。
Java 语言中共有 8 种控制语句,可以分为“选择语句”,“循环语句”,“转向语句”,“返回语句”四类。
那么,这8 种控制语句分别是什么呢?
if语句、switch 语句、for 循环、while 循环、do…while 循环、break 语句、continue 语句、return 语句。
其中if 和switch 语句属于选择语句,for、while、do…while 语句属于循环语句,break 和 continue 语句属于转向语句,return 属于返回语句。
控制语句的重点梳理
1.if语句的使用
if(表达式){}
其中表达式必须是布尔表达式;
if不管f语句后面有几条语句都必须加上花括号;
2.switch语句的使用
注意:
① switch 语句后面的小括号“()”当中都可以出现什么?在JDK1.6 之前(包括1.6 在内)
switch 只能探测 int 类型的数据,但是在 JDK1.7 之后(包括 1.7 在内),switch 语句除了支持
int 类型之外,还支持 String 类型。也就是说从 Java7 开始 switch 后面小括号中可以出现字符串。
② switch 虽然只能探测 int 类型,但是也可以将 byte,short,char 类型放到小括号当中,因为这些类型会自动转换成int 类型(小容量向大容量转换称为自动类型转换)。
③ switch 语句当中 case 是可以进行合并的,例如以下代码:
switch(90){
case 100 : case 90 : case 80 : case 70 :
System.out.println("过关了");
break;
case 60:
System.out.println("失败了");
break;
default :
System.out.println("出错了");
break;
}
其中default可以放在任何位置,放在最后面的时候可以不加break;放在中间是必须加break
建议不管放在那里都加上break;
switch使用时“()”中表达式值和case 后面的值进行匹配,匹配成功后执行该case后的语句,直到遇到break结束,如果没有遇到就会执行完所有的case语句;
case后面要使用常量表达式,而且常量表达式的值不能与其他case后常量表达式的值相同或者与字面量的值相同
3.while(布尔表达式){ }
4.do{ }while(布尔表达式)
5.break;
first:for(int j = 1; j <= 2; j++){
for(int i = 1; i <= 10 ; i++){
if(i == 5){
break first;
}
System.out.println("i = " + i);
}
}
break 语句默认情况下只能终止离它“最近”的“一层”循环
可以给每个循环设置标识,
例如:first:for…、second:for…,当某个条件成立时,想终止指定循环的话,可以这样做:breakfirst;或者 break second;,这样指定的循环就结束了。
6.continue
当“continue;”语句执行的时候,当前本次循环剩下的代码就不再执行了(不再执行下面的语句)跳出本次循环
Scanner类的使用
Scanner scanner=new Scanner(System.in);
int x=scanner.nextInt();
System.out.println(x);
String str=scanner.next();
System.out.println(str);
String str2=scanner.nextLine();
System.out.println(str2);
需要注意: scanner.nextLine()会读入上一个字符串输入结束后的空格;
2.方法的使用
方法的定义格式:
[修饰符列表] 返回值类型 方法名(形式参数列表){
方法体;
}
① [修饰符列表],此项是可选项,不是必须的
② 返回值类型,此项可以是 java 语言当中任何一种数据类型,包括基本数据类型,也包
括所有的引用数据类型,当然,如果一个方法执行结束之后不准备返回任何数据,则返回值类型必须写 void。返回值类型例如:byte,short,int,long,float,double,boolean,char,String,void 等。
③ 方法名,此项需要是合法的标识符,开发规范中要求方法名首字母小写,后面每个单
词首字母大写,遵循驼峰命名方式,见名知意,例如:login、getUsername、findAllUser 等。
④ 形式参数列表(int a, int b),此项又被称为形参,其实每一个形参都是“局部变量”,形参的个数为 0~N 个,如果是多个参数,则采用半角“,”进行分隔,形参中起决定性作用的是参数的数据类型,参数名就是变量名,变量名是可以修改的,也就是说(int a , int b)也可以写
成(int x , int y)。
⑤ 方法体,由一对儿大括号括起来,在形参的后面,这个大括号当中的是实现功能的核
心代码,方法体由 java 语句构成,方法体当中的代码只能遵循自上而下的顺序依次逐行执行,不能跳行执行,核心代码在执行过程中如果需要外部提供数据,则通过形参进行获取。
方法重载/overload
代码满足什么条件的时候构成方法重载呢?
① 在同一个类当中。
② 方法名相同。
③ 参数列表不同:个数不同算不同,顺序不同算不同,类型不同也算不同。
3.递归的使用
public static void print(int x) {
if (x > 9) {
print(x / 10);
}
System.out.print(x % 10 + " ");
}