本篇主要讲java中的方法,流程控制语句。
一、java的方法入门
1.概述:方法, 就是将一个功能抽取出来,把代码单独定义在一个大括号内,形成一个单独的功能。当我们需要这个功能的时候,就可以去调用。这样即实现了代码的复用性,也解决了代码冗余的现象。
2.定义格式:
修饰符 返回值类型 方法名 (参数列表){
代码...
return ;
}
3.方法的调用:
方法在定义完毕后,方法不会自己运行,必须被调用才能执行,我们可以在主方法main中来调用我们自己定义好的方法。在主方法中,直接写要调用的方法名字就可以调用了。
public static void main(String[] args) {
//调用定义的方法method
method();
}
//定义方法,被main方法调用
public static void method() {
System.out.println("自己定义的方法,需要被main调用运行");
}
4.注意事项
方法必须定义在一类中方法外;方法不能定义在另一个方法的里面
二、流程控制语句
1.判断语句
1.1 if语句
格式:if(关系表达式){
语句体;
}
执行流程:先判断关系表达式结果是true还是false,true执行语句体,false不执行。
1.2 if…else
格式: if(关系表达式) {
语句体1;
}else {
语句体2;
}
执行流程:先判断关系表达式结果是true还是false,true执行语句体1,false执行2。
1.3 if…else if …else
格式:if (判断条件1) {
执行语句1;
} else if (判断条件2) {
执行语句2;
}
...
}else if (判断条件n) {
执行语句n;
} else {
执行语句n+1;
}
执行流程:首先判断关系表达式 1看其结果是true还是false,如果是 true就执行语句体 1如果是 false就继续判断关系表达式2看其结果是true还是false,如果是 true就执行语句 体2,如果是 false就继续判断关系表达式…看其结果是true还是false…如果没有任何关系表达式为 true,就执行语句体n+1。
1.4练习:要求根据考试成绩,判断学生等级
90-100 优秀 80-89 好 70-79 良 60-69 及格 60 以下 不及格
public static void main(String[] args) {
int score = 100;
if(score<0 || score>100){
System.out.println("你的成绩是错误的");
}else if(score>=90 && score<=100){
System.out.println("你的成绩属于优秀");
}else if(score>=80 && score<90){
System.out.println("你的成绩属于好");
}else if(score>=70 && score<80){
System.out.println("你的成绩属于良");
}else if(score>=60 && score<70){
System.out.println("你的成绩属于及格");
}else {
System.out.println("你的成绩属于不及格");
}
}
1.5 if语句和三元运算符的互换
public static void main(String[] args) {
int a = 2;
int b = 5;
//定义变量,保存a和b的较大值
int c;
if(a > b) {
c = a;
} else {
c = b;
}
//上述功能可以改写为三元运算符形式
c = a > b ? a:b;
}
2.选择语句 switch
格式:switch(表达式) {
case 常量值1:
语句体1;
break;
case 常量值2:
语句体2;
break;
...
default:
语句体n+1;
break;
}
**执行流程**:首先计算出表达式的值其次,和 case依次比较,一旦有对应的值,就会执行相应的语 句,在执行的过程中,遇到break就会结束。最后,如果所有的 case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。
3.循环语句
3.1 循环语句1-- for
格式:for(初始化表达式①; 布尔表达式②; 步进表达式④){
循环体③
}
执行流程:执行顺序:①②③④ >②③④>②③④…②不满足为止。
①负责完成循环变量初始化
②负责判断是否满足循环条件,不满足则跳出循环
③具体执行的语句
④循环后,循环条件所涉及变量的变化情况
练习:输出10次HelloWorld
//定义变量从0开始,循环条件为<10
for(int x = 0; x < 10; x++) {
System.out.println("HelloWorld"+x);
}
}
3.2 循环语句2–while
格式: 初始化表达式①
while(布尔表达式②){
循环体③
步进表达式④
}
执行流程:执行顺序:①②③④ >②③④>②③④…②不满足为止。
①负责完成循环变量初始化。
②负责判断是否满足循环条件,不满足则跳出循环。
③具体执行的语句。
④循环后,循环变量的变化情况。
练习:while循环输出10次HelloWorld
public static void main(String[] args) {
//while循环实现打印10次HelloWorld
//定义初始化变量
int i = 1;
//循环条件<=10
while(i<=10){
System.out.println("HelloWorld");
//步进
i++;
}
}
**3.3 循环语句3--do--while**
格式:初始化表达式①
do{
循环体③
步进表达式④
}while(布尔表达式②);
执行流程 :执行顺序:①③④ >②③④>②③④…②不满足为止。
①负责完成循环变量初始化。
②负责判断是否满足循环条件,不满足则跳出循环。
③具体执行的语句
④循环后,循环变量的变化情况
练习:输出10次HelloWorld
public static void main(String[] args) {
int x=1;
do {
System.out.println("HelloWorld");
x++;
}while(x<=10);
}
3.4 for 和 while 的区别:
①控制条件语句所控制的那个变量,在 for循环结束后,就不能再被访问到了, 而while循环结束还可以继续使用,如果你想继续使用,就用while,否则推荐使用for。原因是for循环结束,该变量就从内存中消失,能够提高内存的使用效率。
②在已知循环次数的时候使用推荐使用 for,循环次数未知的时推荐使用while
3.5 跳出语句
①break :用于终止 switch或者循环
②continue:结束本次循环,继续下一次的循环
4.嵌套循环
概述:指一个循环的循环体是另一个循环。比如for循环里面还有一个for循环,就是嵌套循环。总共的循环次数=外循环次数*内循环次数。
格式:for(初始化表达式①; 循环条件②; 步进表达式⑦) {
for(初始化表达式③; 循环条件④; 步进表达式⑥) {
执行语句⑤;
}
}
嵌套循环执行流程:
执行顺序:①②③④⑤⑥ >④⑤⑥>⑦②③④⑤⑥>④⑤⑥外循环一次,内循环多次。
练习 :使用嵌套循环,打印5*8的矩形
public static void main(String[] args) {
//5*8的矩形,打印5行*号,每行8个
//外循环5次,内循环8次
for(int i = 0; i < 5; i++){
for(int j = 0; j < 8; j++){
//不换行打印星号
System.out.print("*");
}
//内循环打印8个星号后,需要一次换行
System.out.println();
}
}