if语句、switch语句、for语句、while语句、do....while语句

Java if语句、switch语句、for语句、while语句、do....while语句

在了解这些流程控制语句之前,先要知道什么是流程控制语句,流程控制语句就是在程序执行过程中,各条语句的执行顺序会对程序的结果有直接的影响。

控制语句的分类

顺序结构 自上而下的依次执行程序
选择结构 if、switch
循环结构 for、while、do...while

if语句

格式一

格式一

if(判断条件){
                     语句体;
                     }              

格式二

if(判断条件){
                      语句体;
                                }else{
                                             语句体;
                                             }

格式三

if(判断条件){
                       语句体;
                             } else if(判断条件){
                                                        语句体;
                                                             }
                                              .
                                              .
                                              .
                                               else{
                                                          语句体;
                                                          }

注:if中的判断语句为比较表达式或者是boolean(布尔)类型的值;如果if语句体只有一条,大括号可以省略,多条则不能省略

执行流程

  • 先计算比较表达式的值,看返回的是true还是false
  • 如果是true,就执行语句体
  • 如果是false,并且没有else if、else或者不满足else if判断条件的情况下,就不执行语句
  • 如果有else语句,在条件都不满足的情况下,就执行else中的语句

不同结构if语句的演示

键盘录入一个成绩,判断并输出成绩的等级。
90-100 优秀
80-89 良
70-79 中
60-69 及格
0-59 差
演示一
import java.util.Scanner;
public class Sm {
    public static void main(String[] args) {
        Scanner x = new Scanner(System.in);
        int y=x.nextInt();
        if(y<60){
            System.out.println("差");
        }if(60<=y&&y<70){
            System.out.println("及格");
        }if(70<=y&&y<80){
            System.out.println("中");
        }if(80<=y&&y<90){
            System.out.println("良");
        }if(90<=y&&y<=100){
            System.out.println("优秀");
        }
    }
}

在这里插入图片描述

演示二
import java.util.Scanner;
public class Sm {
    public static void main(String[] args) {
        Scanner x = new Scanner(System.in);
        int y=x.nextInt();
        if(y<60){
            System.out.println("差");
        }else if(60<=y&&y<70){
            System.out.println("及格");
        }else if(70<=y&&y<80){
            System.out.println("中");
        }else if(80<=y&&y<90){
            System.out.println("良");
        }else if(90<=y&&y<=100){
            System.out.println("优秀");
        }else{
            System.out.println("输错了分值在0~100!");
        }
    }

在这里插入图片描述

switch语句

格式:
switch(表达式){
                     case 值1:
				                 语句体1;
				                 break;
			         case 值2:
				                 语句体2;
				                 break;
			         case 值3:
				                 语句体3;
				                 break;
			               ....
			        default:	
				               语句体n+1;
				               break;
            }

switch语句注意事项

表达式的取值
byte,short,int,char JDK5以后可以是枚举 JDK7以后可以是String
  • case后面跟的是要和表达式进行比较的值,只能是常量,不能是变量,而且,多个case后面的值不能出现相同的
  • 语句体部分可以是一条或多条语句
  • break表示中断,结束的意思,可以结束switch语句
  • default语句表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似
  • default可以省略,但是不建议,因为它的作用是对不正确的情况给出提示,可以放在任意位置,但是建议在最后。
  • break可以省略,但是结果可能不是我们想要的,会出现一个现象:case穿透,因此建议你不要省略
  • switch语句的结束条件有两种,一是遇到break就结束了,二是执行到末尾就结束了

执行过程

  1. 先计算表达式的值
  2. 然后和case后面的匹配,如果匹配成功就执行对应的语句,遇到break就会结束,否则执行default控制的语句
    1. switch语句演示

      给定一个值输出对应的星期一,星期二,星期三…星期日
import java.util.Scanner;
public class Sm {
    public static void main(String[] args) {
        Scanner x = new Scanner(System.in);
        System.out.println("请输入1~7:");
        int y = x.nextInt();
        switch (y) {
            case 1:
                System.out.println("星期一");
                break;
            case 2:
                System.out.println("星期二");
                break;
            case 3:
                System.out.println("星期三");
                break;
            case 4:
                System.out.println("星期四");
                break;
            case 5:
                System.out.println("星期五");
                break;
            case 6:
                System.out.println("星期六");
                break;
            case 7:
                System.out.println("星期天");
                break;
            default:
                System.out.println("输入格式不对!");
        }
    }
}

在这里插入图片描述

选择结构if语句和switch语句的区别

if语句使用场景 针对一个范围的判断
针对结果是boolean类型的判断
针对几个常量值的判断
switch语句使用场景 针对几个常量值的判断

for循环语句

格式:
for(初始化表达式语句;条件判断语句;控制条件语句){
                      循环语句体;
}

执行流程

  1. 执行初始化表达语句
  2. 执行条件判断语句,如果符合条件就继续,否则终止循环
  3. 符合条件后,执行循环语句
  4. 循环语句执行完后,接下来执行控制语句,然后继续执行条件判断语句,看是否满足,如果满足就继续,执行循环语句,不断重复2,3,4步,直到不满足条件为止
注:初始化表达语句只执行一次。

for语句演示

统计“水仙花”数额个数(水仙花数是三位数,并且每一位数的立方相加都等于这个数,如153=1*1*1+5*5*5+3*3*3)
import  java.util.Scanner;
public class Narcissusnum {
    public static void main(String[] args) {
        int a,b,c,d;
        int count=0;
        System.out.println("水仙数是:");
        for(int x=100;x<1000;x++){
            a=x%10;
            b=x/10%10;
            c=x/100%10;
            d=a*a*a+b*b*b+c*c*c;
            if(d==x){
                System.out.print(d+"\t");
                count++;
            }
        }
        System.out.println("\n"+count);
    }
}

在这里插入图片描述

while语句

格式:
while(判断条件){
                循环语句;
}

执行流程
  1. 执行判断语句
  2. 满足条件后,执行循环语句
  3. 执行完循环语句后,返回第一步继续判断,然后执行第二步,不断循环这个过程,直到不满足条件

while语句演示

  • 输出1~10
  • 计算1~100之间偶数相加总和
public class WhileD1 {
    public static void main(String[] args) {
        int i=1;
        while(i<10){
            System.out.print(i+"\t");
            i++;
        }
        System.out.println("\n-------------------------------");
        int j=1;
        int sum=0;
        while(j<=100){
            if(j%2==0){
                sum+=j;
            }
            j++;
        }
        System.out.println("sum="+sum);

    }
}

在这里插入图片描述

do...while语句

格式:
do{
      循环语句;
}while(判断语句);

执行流程

  1. 执行循环语句
  2. 执行完循环语句后,执行判断语句,如果满足条件,就继续执行第一步,以此循环,直到不满足条件

do...while语句演示

输出10个input
public class DoWhileD1 {
    public static void main(String[] args) {
        int i=10;
        do{
            System.out.println("input");
            i--;
        }while(i>0);
    }
}

在这里插入图片描述

三种循环结构的区别

区别
do...while语句至少执行一次循环体;而for、while循环必须先执行判断条件,满足条件后,才执行循环语句
如果你想在循环结束后,继续使用控制条件的那个变量,用while循环;否则用for循环,因为变量及早的从内存中消失,可以提高内存的使用效率。
建议优先考虑for循环,然后是while循环 ,最后是do...while循环

猜你喜欢

转载自blog.csdn.net/grey_mouse/article/details/83004172