JAVA - 程序流程控制

JAVA - 程序流程控制

任何语言要想运行,都必须定义相应的流程控制规则,开发者按照规则实现相应的算法与功能,就像加减乘除的运算优先级,那么Java中的流程控制有哪些那?又是怎么执行的,总结如下:

流程控制的分类:

1、顺序

2、分支

3、循环

顺序:

顺序执行,表示逐行执行相应的语句,不涉及任何的关键字。

举例 1:(顺序执行)

public class Test {
	public static void main(String[] args) {

		int i = 1;
		System.out.println("我是第 " + (i++) + " 行");
		System.out.println("我是第 " + (i++) + " 行");
		System.out.println("我是第 " + (i++) + " 行");
		System.out.println("我是第 " + (i++) + " 行");
		System.out.println("我是第 " + (i++) + " 行");
	}
}
输出:

我是第 1 行
我是第 2 行
我是第 3 行
我是第 4 行
我是第 5 行

分支:

分支控制,则需要按照判断条件动态的去执行符合条件的语句,需要使用关键字:

【if】 ,【else】 , 【三目:condition?true:false】,switch case: break default;

举例 1:(分支控制)

<pre name="code" class="java">public class Test {
	public static void main(String[] args) {

		People man = new People(true, 7000f);
		// 1. use if else
		if (man.getSex()) {
			System.out.println("this is a man");
		} else {
			System.out.println("this is a female");
		}

		// 2. use condition ? true :false
		float salary = man.getSalary();
		String 薪资级别 = salary > 1000f ? "高" : "低";
		System.out.println(薪资级别);

	}
}

class People {

	private Boolean sex;// true is man ,false is female
	private float salary;

	public People(boolean sex, float salary) {
		this.sex = sex;
		this.salary = salary;
	}

	public float getSalary() {
		return salary;
	}

	public Boolean getSex() {
		return sex;
	}

}


 
   输出: 
   

this is a man
高


switch case: break default;

         对于Switch语句的介绍,只能说尽量少用,只用于解决多分支情况时的过度if else重复逻辑,在Switch可以使用的值有char Enum 字符串(JDK 7),使用时要注意两点:

1、每个case一定要跟上break,有些逻辑需要可能出现 case 1--> case 2  break; 这种需要特别的注意

2、必须指定default分支

        注意:在JDK 1.7中支持了String ,方便了许多。如:

public class Test {   
	public static void main(String[] args) {  
		String name = "b";
		int value = 0;
		switch(name) {
			case "a":
				value = 1;
				break;
			case "b":
				value = 2;
				break;
			case "c":
				value = 3;
				break;
			case "d":
				value = 4;
				break;
			case "e":
				value = 5;
				break;
			default:
				value = 6;
		}
		System.out.println(value);
	}  
}

循环

循环控制,则需要按照循环判断条件动态的去执行循环语句,需要使用关键字:

【for / foreach】【while / do……while】【标记】【continue】【break】

for 循环使用方法:

1、原for循环

for(初始化语句;判断语句;附加执行语句){ //附加执行语句可以不写,或者写在循环语句,主要用来对于循环条件的渐变

循环执行语句(可以配合【continue & break】控制循环)

}

2、新for循环

for(遍历单个元素:元素集合){

循环执行语句(可以配合【continue & break】控制循环)

}

举例 1: (for 循环控制)

public class Test {
    public static void main(String[] args) {

        int[] intArr = new int[10];
        int j = 0;
        float z = 0;
        String s = "";
        for (int i = 0; i < intArr.length; i++,j++,z--,s=""+i) {// 1、原for循环,i++可以不写,或者写在intArr[i]= i + 1;下一行,至于j++,z-- 这句也可以写,可能在可读性上就差了许多
            intArr[i] = i + 1;
            if(i==5){
                continue;//进行下次循环,后面的语句不执行,后面的执行语句 【i++,j++,z--,s=""+i --> i < intArr.length; --> intArr[i] = i + 1;】
            }
            if(i==7){
                break;
            }
            System.out.print( "j = " + j + " ,");
            System.out.println( "z = " + z +" ,");
        }
        for (int i : intArr) {// 2、新for循环,不可以写附加执行语句
            System.out.print(i + " ,");
        }

    }
}

输出:

1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9 ,10 ,

while 循环使用方法:

1、while 循环

while(循环判断条件){

循环语句(可以配合【continue & break】控制循环)

}

举例 1:(while / do ... while 循环)

public class Test {
	public static void main(String[] args) {

		boolean flag = false;
		
		//1、while 语句
		while (flag) {
			System.out.println("while");
			break;
		}
		System.out.println("--------------------------");

		//2、do while 语句
		do {
			System.out.println("do ... while");
			break;
		} while (flag);// 注意while(flag)属于判断语句,不在属于循环体,所以必须加上“;”结束该语句。

	}

}


输出:

--------------------------
do ... while
1、while 首先它回去判断while中的条件,条件不符合则不执行循环语句(循环体)。

2、do……while,首先它不会去判断while中的条件,而是直接执行循环语句,输出了第一元素,再去判断while中的条件。如果符合条件再次进入循环语句。

循环中标记的使用方法:


标记的定义:

loop:循环语句

        loop1:for(int i = 0;i<10;i++){
            
        }

        loop2:while(true){
            
        }
       
注意:do...while 貌似不可以定义标记。

举例 1:(标记的使用)

public class Test {
	public static void main(String[] args) {

		int[] intArr = new int[] { 1, 2 };
		int[] intArr2 = new int[] { 2, 3, 4 };

		// 判断intArr1中元素是否存在于intArr2
		boolean result = false;
		loop: for (int i : intArr2) {// 定义标记loop 指向此行中的for语句段的结束,即执行的下一句是【System.out.println("\nresult = " +result);】
			for (int j : intArr) {
				if (i == j) {
				    result = true;
				   <strong> break loop;</strong>
				}
			}
			System.out.print(i + " ,");
		}
		System.out.println("\nresult = " + result);
	}
}

注意:

   标记只能定义在一个语句块(for 或者 while循环条件行或者{……}),指定不再满足条件,进行语句块下面的语句,标记类于语句块中的局部变量,所以可以重复定义,且语句块外不可以使用该标记。













  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值