小言_互联网的博客

Java流程控制语句

260人阅读  评论(0)

流程控制语句

在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。所以,我们必须清楚每条语句的执行流程。而且,很多时候要通过控制语句的执行顺序来实现我们想要的功能。

流程控制语句分类

顺序结构、分支结构(if\switch)、循环结构(for\while\do…while)

顺序结构

顺序结构是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数代码都是这样执行的。

顺序结构执行流程图:

分支结构:if 语句

if语句格式1:
if(关系表达式){
   
	语句体;
}

执行流程:
1、首先计算关系表达式的值
2、如果关系表达式的值为true就执行语句体
3、如果关系表达式的值为false就不执行语句体
4、继续执行后面的语句内容

public static void main(String[] args) {
   
        System.out.println("开始");
        //定义两个变量
        int a = 10;
        int b = 20;
        //需求,判断a,b的值是否相等,如果相等,就在控制台输入a等于b
        if(a == b){
   
            System.out.println("a等于b");
        }
    }
if语句格式2:
if(关系表达式){
   
	语句体1;
} else {
   
	语句体2;
}

执行流程:
1、首先计算关系表达式的值
2、如果关系表达式的值为true就执行语句体1
3、如果关系表达式的值为false就执行语句体2
4、继续执行后面的语句内容

public class ifElseSwitch {
   
    public static void main(String[] args) {
   
        System.out.println("开始");
        //定义两个变量
        int a = 10;
        int b = 20;
        b = 5;
        //需求,判断a是否大于b,如果是在控制台输出:a的值大于b,否则,在控制台输出,a的值不大于b
        if(a > b){
   
            System.out.println("a的值大于b");
        } else {
   
            System.out.println("a的值不大于b");
        }
        System.out.println("结束!");
    }
}

 
if语句案例:奇偶数
public  static void ifTest01(){
   
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入一个整数:");
        int i = scanner.nextInt();
        //判断整数是偶数还是奇数要分两种情况进行判断,使用if..else结构
        //判断是否偶数需要使用取余运算符实现该功能number % 2 == 0
        //根据判定情况,在控制台输出对应的内容
        if(i % 2 == 0){
   
            System.out.println(i + "是偶数!");
        } else {
   
            System.out.println(i + "是奇数!");
        }
    }
if语句格式3:
if (关系表达式1) {
   
    语句体1;	
} else if (关系表达式2) {
   
    语句体2;	
}else {
   
    语句体n+1;
}

分支结构:switch语句

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

执行流程:
1、首先计算出表达式的值
2、其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行过程中,遇到break就会结束。
3、最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。

switch语句-春夏秋冬

一年有12个月,分属于春夏秋冬4个季节,键盘录入一个月份,请用程序实现判断该月份属于哪个季节,并输出。

public class Demo1 {
   
    public static void main(String[] args) {
   
        //键盘录入月份数据,使用变量接收
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个月份:");
        int month = sc.nextInt();
        //case穿透
        switch(month) {
   
            case 1:
            case 2:
            case 12:
                System.out.println("冬季");
                break;
            case 3:
            case 4:
            case 5:
                System.out.println("春季");
                break;
            case 6:
            case 7:
            case 8:
                System.out.println("夏季");
                break;
            case 9:
            case 10:
            case 11:
                System.out.println("秋季");
                break;
            default:
                System.out.println("你输入的月份有误");
        }
    }
}

 

如果switch中得case,没有对应break的话,则会出现case穿透的现象

循环结构: for循环

for循环结构

循环语句可以满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适的时候把循环条件修改为false,从而结束循环,否则循环将一直执行下去,形式死循环。

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

初始化语句:用于表示循环开启时的起始状态,简单说就是循环开的时候什么样
条件判断语句:用于表示循环反复执行的条件,简单说就是判断循环是否能一直执行下去
循环体语句:用于表示循环反复执行的内容,简单说就是循环反复执行的事情
条件控制语句:用于表示循环执行中每次变化的内容,简单说就是控制循环是否能执行下去

在控制台输入1-5和5-1的数据
public static void for01(){
   
        for (int i = 0; i < 5; i++) {
   
            System.out.println(i);
        }
        System.out.println("--------");
        for (int i = 5; i >=1; i--) {
   
            System.out.println(i);
        }
    }
求出1-5之间的数据之和并打印在控制台
public static void for02(){
   
        int sum = 0;
        for (int i = 0; i < 5; i++) {
   
            sum += i;
        }
        System.out.println(sum);
    }

求和变量的定义位置,必须在循环外部,如果在循环内部则计算出来的数据将是错误的

求偶数和

求1-100之间的偶数和,并把结果打印

public static void for03(){
   
        int sum = 0;
        for (int i = 0; i < 100; i++) {
   
            if(i%2==0){
   
                sum += i;
            }
        }
        System.out.println(sum);
    }
for循环练习水仙花数

在控制台输出所有”水仙花数“,水仙花数指的是一个三位数,个位,十位,百位的数字立方和等于原数字

 public static void for04(){
   
        for (int i = 100; i < 1000; i++) {
   
            //计算三位数中每个位置上的值
            int g = i%10;
            int s = i/10%10;
            int b = i/10/10%10;
            if(g*g*g + s*s*s +b*b*b == i){
   
                System.out.println(i);
            }
        }
    }

while循环结构

while (条件判断语句) {
   
	循环体语句;
    条件控制语句;
}

while循环执行流程
1、执行初始化语句
2、执行条件判断语句,看其结果是true还是false,false循环结束,true继续执行
3、执行循环体语句
4、执行条件控制语句
5、回到2继续执行

 public static void whileTest01(){
   
        //需求:在控制台输出5次helloworld
        for (int i = 0; i < 5; i++) {
   
            System.out.println("Hello World!");
        }
        System.out.println("-----------");
        int j = 1;
        while (j<=5){
   
            System.out.println("helloworld!");
            j++;
        }
    }

while循环–珠峰

世界最高山峰是珠峰为8844.43,假如将一张足够大并且厚度为0.1的纸,折叠多少次可以折成珠峰的高度

 public static void while02(){
   
        int s = 0;
        double p = 0.1;
        int zf = 8844430;
        //因为需要反复折叠,不知道折叠了多少次所以需要使用while循环
        while(p <= zf){
   
            p *= 2;
            s++;
        }
        System.out.println("需要折叠" + s +"次");
    }
    

do-while循环

初始化语句;
do {
   
	循环体语句;
	条件控制语句;
}while(条件判断语句);

执行流程
1、执行初始化语句
2、执行循环体语句
3、执行条件控制语句
4、执行条件判断语句,看其结果是true(继续执行)还是false(循环结束)
5、回到2继续执行

public class DoWhileDemo {
   
    public static void main(String[] args) {
   
        //需求:在控制台输出5次"HelloWorld"
		//for循环实现
		for(int i=1; i<=5; i++) {
   
			System.out.println("HelloWorld");
		}
		System.out.println("--------");
		//do...while循环实现
		int j = 1;
		do {
   
			System.out.println("HelloWorld");
			j++;
		}while(j<=5);
    }
}

 

三种循环的区别

三种循环的区别

for循环和while循环先判断条件是否成立,然后决定是否执行循环体(先判断后执行)
do…while循环先执行一次循环体,然后判断条件是否成立,是否继续执行循环体(先执行后判断)

for循环和while的区别

条件控制语句所判断的自增变量,因为归属for循环的语法结构中,在for循环结束后,就不能被再次访问到了
条件控制语句所控制的自增变量,对于while循环来说不归属其语法结构中,在while循环结束后,该变量还可以继续使用

死循环(无限循环)的三种格式
1. for(;;){
   }
2. while(true){
   }
3. do {
   } while(true);

跳出控制语句

跳出控制语句(break),跳出循环,结束循环
跳出控制语句(continue),继续下次循环
continue只能在循环中进行使用!

循环嵌套

在循环中,继续定义循环

	public static void main(String[] args) {
   
        //外循环控制小时的范围,内循环控制分钟的范围
        for (int hour = 0; hour < 24; hour++) {
   
            for (int minute = 0; minute < 60; minute++) {
   
                System.out.println(hour + "时" + minute + "分");
            }
            System.out.println("--------");
        }
    }

整个内循环,就是外循环的一个循环体,内部循环体没有执行完毕,外循环是不会继续向下执行的,外循环执行一次,内循环执行一圈


转载:https://blog.csdn.net/weixin_43914631/article/details/128082019
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场