JAVA(SE)基础五 控制语句
我们在写java代码的时候,选择和循环是必不可少的,有了它们,可以让我们更加简单的完成需要我们重复且复杂的语句,让我们的代码更加条理清晰,减少冗杂。下面我们就来讲下控制语句。
选择结构
选择结构在控制语句的一个类型,主要分为if条件语句和switch条件语句。其中switch是定值选择,而if可以是定值选择,也可以做区间判断。
if条件语句
if条件语句的语法是 if(表达式){
满足条件执行的代码(语句块);
};
if根据要判断的选择又分为单分支 if(){}双分支if(){}else{},多分支if(){}else if(){}…else{},我们可以根据需要的条件来选择适合的格式。当if的语句块只有一个内容时,大括号可以省略不写。
public static void main(String[] args) {
int score = 74;
//成绩在哪一个等级
if(score>=90&&score<=100){
System.out.println("A级");
}
else if(score>=80&&score<90)
System.out.println("B级");
else if(score>=70&&score<80)
System.out.println("C级");
else if(score>=60&&score<70)
System.out.println("D级");
else if(score>=0&&score<60)
System.out.println("E级");
}
switch定值选择
switch是定值判断,
表达式: 一般一个变量,可以为一个表达式
结果的数据类型要求: byte,short,int,char,枚举,String
case: case的值与表达式的结果进行判断是否相等
break: 结果当前switch语句,防止case穿透,有时我们也可以利用穿透,使得代码更加简洁
default: 相当于if语句的else
语法是 :
switch(表达式){
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
…
default:
语句体n;
break;
}
//用switch,可以用除以10,获得整数部分,整体变小
switch (score/10){
case 10:
case 9:
System.out.println("A级");
break;
case 8:
System.out.println("B级");
break;
case 7:
System.out.println("C级");
break;
case 6:
System.out.println("D级");
break;
case 5:
case 4:
case 3:
case 2:
case 1:
case 0:
System.out.println("E级");
break;
default:
System.out.println("成绩不合法");
break;
}
上面的代码是利用了穿透现象来判断等级的。
循环结构
循环可以帮助我们减少重复性的操作,分为for循环,while循环和do-while循环。
for循环
语法:
for(条件初始化;条件判断;条件变化){
重复执行的代码(语句块);
}
执行顺序:
条件初始化>>条件判断>>代码语句块>>条件变化>>条件判断>>…>>不满足条件判断退出循环
public static void main(String[] args) {
//求1-100的和,求1-100的偶数和,求1-100的奇数和
int sum = 0;
for(int i = 1;i<=100;i++){
sum=sum+i;
}
System.out.println(sum);
}
while循环
语法:
while(条件判断){
重复执行的语句体(语句块);
}
执行顺序:条件判断>>语句块>>条件判断。
注意:和for一样是如果需要有一个条件初始化的,在while语句的前面可以定义一个,也可以没有。
在语句块中可以写条件的变化(否则容易造成死循环),有些也是可以没有的。
可以配合break来跳出循环。
public static void main(String[] args) {
//求1-100的和,求1-100的偶数和,求1-100的奇数和
int sum = 0;
int i = 1;
while(i<=100){
sum+=i;
i++;
}
System.out.println(sum);
}
do-while循环
和while循环是差别不大的,是先执行后判断,即无论是否满足条件都至少执行一次。
语法:do{
循环体语句;
}while(条件判断);
//计算1~10之间的和
int sum = 0;
int i = 1; //条件初始化
do {
sum+=i;
i++; //条件判断
}while(i<=10);
System.out.println(sum);
break和continue
break
作用: 终止 ,停止
应用场景: switch语句 循环语句
continue
作用: 停止当前这一次 循环的执行,直接进入到下一次循环
应用场景: 循环中
break,continue 在多重循环嵌套下,默认控制内层循环,即当前所在的这个循环
如果想要终止|调出的是所有的循环(外层循环)—>需要带标签的break|continue
因此在循环开始位置添加标签,可以直接跳转达到对应标志位置
mark1:
for(int i=1;i<=5;i++){
for(int j=1;j<=3;j++){
System.out.print("i="+i+"----->j="+j+"\t");
if(j==2){
break mark1;
}
}
System.out.println();
}
循环嵌套
最经典的就是打印九九乘法表。在循环中嵌套循环。
public class NineNine {
public static void main(String[] args) {
for(int i=1;i<=9;i++){ //控制行
for(int j=1;j<=i;j++){ //控制列
System.out.print(j+"*"+i+"="+i*j+"\t"); //输出结果
}
System.out.println();//换行
}
}
}
我们刚开始接触控制语句,感觉可能会有些不知多措,但我们只要多加练习,之后熟练起来了,就能够更加的得心应手,能够解决更多的问题。