JAVA的流程控制

JAVA的流程控制

一、流程控制的概念

在没有流程控制之前,代码的执行顺序是//依次自上至下,从左往右执行。流程控制在一定的程度上,改变代码的执行顺序,跳过部分代码或重复部分代码都是流程控制的作用。

二、流程控制的分类

流程控制主要分为分支及循环两大类。

2.1、分支

就是遇到你某个条件成立,那么就可以选择一个分支去执行,当然也可以认为某些条件不成立,就选择或者跳过一个分支去执行。

2.1.1 if

if 分支的代码格式为:

if (boolean) {   //如果条件为真、则执行以下代码块。
code    // 待执行的代码块区域。
}
//例如
if(100>=n&n>=90){
		 System.out.println("优秀");
		 }
		 if(90>n&n>=80){
		 System.out.println("良");
		 }
		 if(80>n&n>=70){
		 System.out.println("中");
		 }
		 if(70>n&n>=60){
		 System.out.println("差");
		 }
		 if(60>n&n>=0){
			System.out.println("不及格");  
		 }
		 }
		 
		 else{
			 System.out.println("异常");
		 }

注意大括号实际是可以省略不写的的,JAVA默认下一行即为条件为真要执行的代码快,一般情况下需养成写上的习惯,避免出错。

2.1.2 if else

else 一般与if搭配使用。

if(100>=n&n>=90){
		 System.out.println("优秀");
		 }
	else if(90>n&n>=80){
		 System.out.println("良");
		 }
	else if(80>n&n>=70){
		 System.out.println("中");
		 }
	else if(70>n&n>=60){
		 System.out.println("差");
		 }
	else if(60>n&n>=0){
		System.out.println("不及格");  
		 }
		 }
		 
		 else{
			 System.out.println("异常");
		 }

2.1.3 switch

switch相当于指路牌一样,当条件符时,才执行对应的代码块,二不符合的代码块均不执行。其格式为:

 case  目标值:
   code
case  目标值:
   code
case  目标值:
   code
...
case  目标值:
   code
default:
code
}

例子:

long a=2;
		switch(a){  //此处的a为标识符
			
			case 1:
				System.out.println("a=1");
				break;
			case 2:         //标识符的值与此处的2相等。则运行此处代码。
				System.out.println("a=2");
			case 3:
				System.out.println("a=3");
				break;
			default:
				System.out.println("woyevbuzhdao");
		}

此处注意:标识符为变量,此处可作为变量的数据类型有:byte、short、int 、char、string。浮点型的double和float 、布尔型的boolean不能作为标识符的变量使用。

2.1.3、if、if else 、 switch的使用区别。

首先if 和if else 可以合称为 if 结构,与switch的主要区别为:数据离散可能用if ,但大概率用switch,连续区间一定用if。
if 和if else的区别主要为条件判断上,if()是并列关系,只要条件满足都会执行;if()…else()是互斥关系,条件满足条件执行if内的代码,不满足则执行else内代码;if ( ) else if( )

2.2、循环

2.2.1、for 循环

概念:当条件被满足的时候,重复执行某一个部分的代码。

 for123{  
 4    
 }   大括号省之后,只能有一行命令。

执行顺序 1 2 4 3 2 4 3 2 4 3 直至2为flose。
上述代码解释:
1:初始化部分,给定初始值,可以省略。含义:只有在for循环第一次开始的时候,才会执行第一部分的代码。
2:条件判断部分,默认是必然成立的,每一次循环完成,准备下一次循环之前必然执行一遍2部分代码。
3:条件改变部分:每次循环的代码执行完成以后,先执行3部分的代码,来改变循环条件。
4:循环的代码块。
例子:

//100内(不含)的数字内,7的倍数跳过。
for (int a=0;a<=100;a++){
			 if (a%7==0){
				System.out.println ("过");
			 }
			else {
			    System.out.println(a);
			 };
		}

2.2.2、while 循环

while循环代码格式:格式:while(boolean){code}`

int  a=0;
int  sum = 0;
while(a<100){
a++;
sum +=a;
}

代码解释:当判断(boolean)为真时则一直执行code中的代码块,直至boolean为假时,才跳出此次while循环。

2.2.3、for 和 while 使用区别

当知道循环结束的条件,但不知道要循环多少次时,用while循环。
当知道循环的次数,但是不知道循环的结束条件时,用for循环。

2.2.3、循环的跳出与终止

continue 本次循环停止,进行下一次循环。(在本次if满足条件之下执行本次循环)
break,停止当前循环后直接进入下一阶段。(本次及后续循环均不执行了)
if不响应braek、continue的终止或终端命令。
switch for ,响应break 。

三、流程控制的应用

3.1、斐波拉切数列

  int array = new int[20]  //创建一个20个int值的数组。
			array[0]=0;   
			array[1]=1;
			for (int i=2;i<array.length;i++){
				array[i]=array[i-1]+array[i-2]
			}
			for(int i =0; i<array.length; i++){
				System.out.println(array[i]);
			}

3.2、冒泡排序

public class Maopao{
	
	public static void main(String[] args){
	
		int[] array ={3,6,9564};
		for(int i = 0;i<array.length;i++){
			for (int j =0;j<(array.length-i-1);j++) {
				if (array[j]>array[j+1]){
					int temp =array[j];
					array[j]=array[j+1];
					array[j+1]=temp;	
				}
			}
		}	
		for (int item: array){
		System.out.print(item +"  ");
		}
	}
}

3.3、直接排序

int[] array = {6,6,6,3,8,9,3,2,1,4,7,2};
		for(int i = 0;i <array.length;i++){
			//每一次循环都在确定第i个位置的最小值是谁。
			for(int j =i; j<array.length;j++){
				if  (array[i]>array[j]){
					 int temp=array[i];
					 array[i]=array[j];
					 array[j]=temp;
					 
				}
			}
			System.out.println(array[i]+" ");
		}
		for (int i=0;i<array.length;i++){
			System.out.print(array[i]+" ");
		}

3.4、选择排序

int[] array = {1,2,6,4,9,8,5};
		for(int i = 0;i <array.length;i++){
			int minIndex=i;
			int minValue=array[i];
			for (int j=i;j<array.length;j++){
				if( minValue >array[j]){
					minIndex=j;
					minValue=array[j];
				}
			}
			int temp = array[i];
			array [i]= array[minIndex];
			array[minIndex]=temp; 
		 }
		 for (int item: array){
			System.out.print(item+""); 
		 }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值