Java基础入门(第三章流程控制)

时间:2021-12-08 14:14:17

分支语句

if...else语句可以使程序根据条件执行不同的语句

if语句语法形式:

if(表达式){

    语句块;

}


if...else语法形式:

if(表达式){

    语句块1;

}

else{

    语句块2;

}


例3.1

if...else应用实例,根据成绩判断并输出是否及格

public class IfDemo {

public static void main(String[] args) {

int score = 71;

if (score >= 60) {

System.out.println("成绩及格");

} else

System.out.println("成绩不及格");

}

}

运行结果:

成绩及格


嵌套的if语句

对于超过二分支情况的选择,可以使用嵌套的if...else语句。

表达式如下:

if(表达式1) {语句块1;}

else if(表达式2) {语句块2;}

    else if(表达式3) {语句块3;}

        ...

            else if(表达式m) {语句块m;}

                    else {语句块n;}

这种嵌套的if语句,将会依次计算表达式的值,如果某个表达式的值为true,则执行其后的语句块,执行完后跳出if语句;若所有表达式都为false,则执行最后一个else后的语句块。

例3.2

嵌套的if语句的应用,根据成绩判断并输出所在级别

public class IfElseDemo {

public static void main(String[] args) {

int score=83;

if(score<60) { System.out.println("成绩为不及格!");}

else if(score<70) { System.out.println("成绩为及格!"); }

else if(score<80) {System.out.println("成绩为中!");}

else if(score<90) {System.out.println("成绩为良");}

else if(score<100) {System.out.println("成绩为优!");}

else if(score==100) {System.out.println("成绩为满分!");}

else

System.out.println("Error!");

}

}


运行结果:成绩为良

Switch语句

例3.3

switch分支结构的应用,根据数值判断并输出为星期几

public class SwitchDemo {

public static void main(String[] args) {

int day=6;

switch(day) {

case 1:

System.out.println("Monday");

break;

case 2:

System.out.println("Tuesday");

break;

case 3:

System.out.println("Wednesday");

break;

case 4:

System.out.println("Thursday");

break;

case 5:

System.out.println("Friday");

break;

case 6:

System.out.println("Saturday");

break;

case 7:

System.out.println("Sunday");

break;

default:

System.out.println("Error");

}

}

}

运行结果:Saturday


例3.5

while循环语句

public class WhileDemo {

public static void main(String[] args) {

int i,sum=0;

i=1;

while(i<=100) {

sum+=i++;

}

System.out.println("1到100的和为"+sum);

}

}

运行结果:1到100的和为5050

例3.6

do...while循环语句

public class DoWhileDemo {

public static void main(String[] args) {

int i,sum=0;

i=1;

do {

sum+=i++;

}while(i<=100);

System.out.println("1到100的和为"+sum);

}

}


运行结果:1到100的和为5050


例3.7

for循环应用

public class ForDemo {

public static void main(String[] args) {

int i,sum=0;

for(i=1;i<=100;i++) {

sum+=i;

}

System.out.println("1到100的和为"+sum);

}

}

运行结果:1到100的和为5050


例3.7.1

for循环应用,对数组中的数据进行冒泡排序(从小到大)并输出

public class ForDemo02 {
public static void main(String[] args) {
int i;
int intArray[]= {39,12,5,102,76};
int n=intArray.length;
for(i=0;i<n-1;i++) {
for(int j=0;j<n-1;j++) {
if(intArray[j]>intArray[j+1]) {
int temp=intArray[j];
intArray[j]=intArray[j+1];
intArray[j+1]=temp;
}
}
}
for(i=0;i<n;i++) {
System.out.println(intArray[i]);
}
}


}


运行结果:

5

12

39

76

102


for...each循环应用,遍历数组,输出其中各元素
for...each语句的局限性:如果要引用数组或者集合的指定元素(如给某个数组元素赋值等),则for...each语句无法做到,仍需使用基本的for语句。


例3.8 

for...each循环应用,遍历数组,输出其中各元素。

public class ForEachDemo {
public static void main(String[] args) {
String[] str = { "a", "b", "c" };
int arr[][] = { { 9, 6 }, { 3, 1 } };
for (String s : str) {
System.out.print(s + ""); //逐个输出数组元素的值
}
System.out.print("\n");
for (int x[] : arr) {
for (int i : x) {
System.out.print(i + " ");  //逐个输出数组元素的值
}
System.out.print("\n");
}


}


}


运行结果:
abc
9 6 
3 1 


print与println的区别:
println打印的时候自带了换行,下一次在打印的时候从下一行开始

print不换行,下次打印的时候在这次打印的东西后面直接打印。


3.2.5嵌套循环

是指在某个循环语句的循环体中,又包含另一个循环语句,也称多重循环

例3.9

嵌套循环应用,输出九九乘法表

public class WhileAndForDemo {
public static void main(String[] args) {
for(int i=1;i<=9;i++) {
int j=1;
while(j<=i) {
System.out.print(j+"*"+i+"="+j*i+"\t");
j++;
}
System.out.print("\r\n"); //输出一个回车换行符
}
}


}

运行结果如下:

1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64

1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81

嵌套循环应注意,内层循环语句必须完整的被包含在外层循环的循环体中,切不可出现内外层循环交叉情况。

循环语句对比:

在很多情况下,3种循环语句可以相互转换使用,但在实际应用中,也有一定的区别

①while语句和do...while语句,只在while后面指定循环条件,但是需要在循环体中包括使循环趋于结束的语句,而for语句则可以在增量表达式中包含使循环趋于结束的语句。

②用while语句和do...while语句时,对循环变量的初始化操作应该放在while语句和do...while语句之前,而for语句则可以在初始表达式中完成

③while语句和do...while语句实现的功能相同,唯一的区别就是do...while语句先执行后判断,无论表达式的值是否为true,都将执行一次循环;而while语句则是首先判断表达式的值是否为true,如果为true则执行循环语句;否则将不执行循环语句。

④for循环语句一般用在对于循环次数已知的情况下,而while语句和do...while语句则一般用在对于循环次数不确定的情况下