javaSE---循环语句+数组

循环语句

循环的三要素:
1.初始化值
2.终止条件
3.迭代部分
while循环:
while(结果为Boolean的表达式){
循环体
}

do while循环
do{
循环体
}while(结果为boolean的表达式)
do while和while大同小异,其区别在于当while(false)时 , do while比while多执行一次循环。

for循环
for( 初始化值 ; 终止语句 ; 迭代部分 ){
循环体
}
其中初始化值和迭代部分都可以拿到括号外,但是终止语句必须在两个";" 之间

数组

我们知道,程序=数据结构+算法+编程语言,数组就是数据结构中的"线性表"结构
初始化方法:
静态初始化 : 数据类型 [ ] 变量名={ , , , …}
动态初始化 : 数据类型 [ ] 变量名=new 数据类型[ 数组长度 ]
另一种静态(呵呵 狗都不用) : 数据类型 [ ] 变量名=new 数据类型[ ]{ , , , …}
数组长度 : 变量名.length
数组中的元素是通过下标(0 — length-1)来调用的 , 若调用时超过数组最大下标,则会出现 ArrayIndexOutOfBoundsException 数组下标越界异常

经典问题举例–除零
Question : 现在有如下的一个数组:int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5} ;要求将以上数组中值为0的项去掉,将不为0的值存入一个新的数组,生成的新数组为:int newArr[]={1,3,4,5,6,6,5,4,7,6,7,5} ;

代码:

int[] oldArr={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5} ;
		int[] arr=new int[oldArr.length]; //初始化一个和老数组等长的整型数组,默认值即可
		int count=oldArr.length;//定义变量count存储老数组长度
		//获取0位置标记
			for( int j=0 ;j<oldArr.length-1  ;j++ ) {// 遍历老数组
				if(oldArr[j]==0) {//标记
					arr[j]=1;//老数组某一元素为零时,arr中与其相等下标处对应元素由0变1
				}
			}						
		//计算新数组长度
		for( int i =0 ; i<arr.length  ;i++){
			if(arr[i]==1) {//arr中1的个数即为老数组中0的个数
				count--;//得到新数组长度
			}
		}
		//将不为零元素塞进新数组
		int[] newaArr = new int[count];
		int x =0;
		for( int i=0 ; i<oldArr.length;i++   ) {
			if(arr[i]!=1) {
				newaArr[x++]=oldArr[i];
			}
		}
		//输出新数组
		for( int i=0  ;i<newaArr.length  ;i++  ) {
		System.out.print(newaArr[i]+" ");
	  }

冒泡排序: 简单来说,就是将数据从用过一遍一遍的前后比较从小到大排列.话不多说,直接举例
静态初始化一维数组{10,20,11,35,6,89},进行冒泡排序

		int[] arr= {10,20,11,35,6,89};
   	for( int i = 0 ; i<arr.length-1  ;i++ ) {//比较次数
   		for( int j=0, b=0;j<arr.length-1  ;j++  ) {//遍历
   			if(arr[j]>arr[j+1]) {//若j>j+1,则交换位置
   				b=arr[j];
   				arr[j]=arr[j+1];
   				arr[j+1]=b;
   			}
   		}
   	}
   	for( int i=0 ; i<arr.length ; i++ ) {
   		System.out.print(arr[i]+" ");
   	}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值