【Java基础学习笔记】3、流程控制语句语法及关键字


一、流程控制语句

1、顺序语句

 代码由上而下、由左及右执行,除了被之后几种语句改变执行顺序。
代码示例:

int a=10,b=5,c;
c=a-b;
System.out.println(c);//输出c的值 所有语句都是从上而下执行的

2、条件语句

(1)单if语句

if(条件表达式){
 该条件表达式成立之后的语句
}
代码示例:

int a=10,b=5;
boolean flag;
if(a>b){
    
    
	flag=true;
}
System.out.println(flag);//输出flag的布尔值,当a>b时为true
//代码表达可简化 只作举例

(2)if-else语句

if(条件表达式){
 条件表达式成立之后的语句
}
else {
 条件表达式不成立之后的语句
}
代码示例:

int a=10,b=5;
boolean flag;
if(a>b){
    
    
	flag=true;
}
else{
    
    
	flag=false;
}
System.out.println(flag);//输出flag的布尔值,当a>b时为true,否则为false
//代码表达可简化 只作举例

(3)if-else-if语句

if(条件表达式1){
 条件表达式1成立之后的语句
}
else if(条件表达式2){
 条件表达式2成立之后的语句
}
……
if(条件表达式n){
 条件表达式n成立之后的语句
}
else{
 以上表达式都不成立之后的语句
}
代码示例:

int a=10,b=5;
boolean flag;
if(a>b){
    
    
	flag=true;
}
else if(a<b){
    
    
	flag=false;
}
else{
    
    
	System.out.println("二者相等");
	System.EXIT(0);
}
System.out.println(flag);
//输出flag的布尔值,当a>b时为true,a<b为false,否则输出两者相等
//代码表达可简化 只作举例

(4)条件语句的嵌套

if(条件表达式1){
 if(条件表达式2){
  以上两个条件表达式都成立之后的语句
 }
 else{
  条件表达式1成立但是表达式2不成立之后的语句
 }
}
else{
  条件表达式1不成立之后的语句
}
代码示例:

public class javaexample {
    
    
    public static void main(String[] args) {
    
    
    //求1-100内的数能被2、3或两者整除的数
        for (int i = 1; i < 101; i++) {
    
    
            if(i%2==0){
    
    
            //条件1,初次判断
                if(i%3==0){
    
    
                //条件2,进一步判断
                    System.out.println(i+"能被2和3整除");
                    continue;
                }
                else{
    
    
                //条件1(被2除)满足但条件2(被3除)不满足
                    System.out.println(i+"只能被2整除,不能被3整除");
                    continue;
                }
            }
            else if(i%3==0){
    
    
            //能被2整除的数已经在上一块被判断过了,不需要二次判断
                System.out.println(i+"只能被3整除,不能被2整除");
            }
            else{
    
    
            //不能被两者其一整除的数
                System.out.println(i+"不能被2或者3整除");
            }
        }
    }
}

2、选择语句

switch语句

switch(表达式){
 case “表达式结果1”:
  语句1;
  break;//可选
 case “表达式结果2”:
  语句2;
  break;//可选
……
 case“表达式结果n”:
  语句n;
  break;//可选
 default://可选
  默认语句;
代码示例:

public static void main(String[] args){
    
    
        Scanner scanner =new Scanner(System.in);
        int score=scanner.nextInt();//控制台输入成绩
        int grade=score/10;//取前两位
        switch(grade)//根据分数段判断成绩
        {
    
    
            case 10 :
            case 9 :
                System.out.println("优秀");
                break;//90-100分为优秀,判断成功后break
            case 8 :
            case 7 :
                System.out.println("良好");
                break;//70-89分为良好,判断成功后break
            case 6 :
                System.out.println("及格");
                break;//60-69分为及格,判断成功后break
            case 5:
            case 4:
            case 3:
            case 2:
            case 1:
            case 0:
                System.out.println("还需努力");
                break;//60分以下不及格,输出还需努力,判断后break
            default ://若成绩不在以上范围,则为未知成绩
                System.out.println("未知等级");
        }
    }//代码还可改进,只作举例

在类型固定且接收的数据为常量时建议使用switch。
在接收的是范围或需要做比较时建议使用if语句。

switch注意事项

(1)case之后的表达式值必须为具体值,不可为变量。
(2)一个switch可以跟多个case,每个case后面需要跟冒号和比较值。
(3)case 语句中的值的数据类型必须与变量的数据类型相同,而且只能是常量或者字面常量。
(4)switch 语句可以包含一个 default 分支,该分支一般是 switch 语句的最后一个分支(可以在任何位置,最好在最后一个)。default 在没有 case 语句的值和变量值相等的时候执行。default 分支不需要 break 语句。
(5)当变量的值与 case 语句的值相等时, case 语句之后的语句才开始执行,且一直执行到 break 语句出现才会跳出 switch 语句。
(6)当遇到 break 语句时,switch 语句终止。程序跳转到 switch 语句后面的语句执行。case 语句可以不包含 break 语句。如果没有 break 语句出现,程序会继续执行下一条 case 语句,就像他不遇到石柱子是不会停下的。在这里插入图片描述

4、循环语句

(1)while循环

while(循环条件){
   循环体;
}

如果循环条件为 true,循环就会一直执行下去。

代码示例:

public static void main(String[] args){
    
    
        int num=0;
        //输出1-100之间的偶数
        while(num<101){
    
    
            num++;//最后一次循环到num=101,不符合循环条件,跳出
            if(num%2==0){
    
    
                System.out.println(num);
            }
        }
    }

(2)do…while循环

do{
   循环体;
}while(循环条件)

如果循环条件为 true,循环就会一直执行下去。

代码示例:

public static void main(String[] args){
    
    
        int num=0;
        do{
    
    
            num++;
            if(num%2==0){
    
    
                System.out.println(num);
            }
        }while(num<101);
    }

有些情况下do…while和while语句是一样的。
直接可进入循环的,用while语句。
有时需要先执行一次循环体才能进进入循环的,用do…while语句。

(3)for循环

for(初始化;循环条件;迭代语句){
          循环体;
}
代码示例:

public static void main(String[] args){
    
    
        int num=0;
        //同样求1-100之间的偶数
        for (int i = 0; i < 101; i++) {
    
    
            if(i%2==0){
    
    
                System.out.println(i);
            }
        }
    }

有些情况下,for循环和while循环的效果是一样的。
循环都可以用while和do…while循环写,但是for循环相比来说更简单一些。

4、扩展

(1)三元运算符

int x=10,y=15;
x>y?x:y;//x是否大于y,是则输出x,否则输出y。

(2)增强for语句

for(声明语句 : 表达式)
{
 代码
}
声明语句:声明的新局部变量,变量类型与后者相匹配。
表达式:要访问的数组,或者是返回值是数组的方法。

public static void main(String[] args) {
    
    
        int[] num;
        num = new int[]{
    
    1,2,3,4,5};
        for (int x : num) {
    
    
            System.out.print(x);
            System.out.print(",");
        }
    }

输出如下:
在这里插入图片描述

二、关键字

(1)break关键字

break 主要用在循环语句或者 switch 语句中,用来跳出整个语句块。
break 跳出最里层的循环,并且继续执行该循环下面的语句。
若要跳出指定循环,可在break后加特定循环名。
代码示例:

public static void main(String[] args) {
    
    
        loop1: for(int i=0;i<100;i++){
    
    
            System.out.println("进入了循环1");
            loop2: for(int j=0;j<100;j++){
    
    
                System.out.println("进入了循环2");
                loop3: for(int k=0;k<100;k++){
    
    
                    System.out.println("进入了循环3,并且循环了"+k+"次");
                    if(k==3) {
    
    
                        System.out.println("跳出循环1,一切都结束了");
                        break loop1;
                    }
                }
            }
        }
    }

结果如下:
在这里插入图片描述

(2)continue关键字

continue 适用于任何循环控制结构中。
作用是让程序立刻跳转到下一次循环的迭代。
在 for 循环中,continue 语句使程序立即跳转到迭代语句。
在 while 或者 do…while 循环中,程序立即跳转到循环条件的判断语句。
代码示例:

public static void main(String[] args) {
    
    
        for (int i = 0; i < 10; i++) {
    
    
        //输出0-9中的奇数
            if(i%2==0){
    
    
            //当判断是偶数后,跳过这次循环,下面的输出语句不会被执行
                continue;
            }
            System.out.println(i);
        }
    }

结果如下:
在这里插入图片描述

(3)return关键字

返回一个结果值,多用于方法。
代码示例:

public int plus(int a,int b){
    
    
	return a+b;//返回a+b的值
	}

结束程序

public static void main(String[] args) {
    
    
        for (int i = 0; i < 10; i++) {
    
    
        //输出0-9的数字,在5时结束程序,输出语句不执行
            if(i==5){
    
    
                return;
            }
            System.out.println(i);
        }
    }

结果如下:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_53743140/article/details/114168331