增强for循环_foreach
image.png//增强for循环-foreach
class ForeachDemo
{
public static void main(String[] args)
{
int[] arr =new int []{10,20,30,40,50};
//使用循环迭代出数组中的每一个元素
for (int index = 0;index < arr.length ;index ++ )
{
System.out.print(arr[index]+ " ");
}
System.out.println();
System.out.println("----------------------------");
for (int index : arr )
{
System.out.println(index+" ");
}
}
}
方法的可变参数
编写一个方法,统计一个数组传递过来的总和
//方法的可变参数
class VarArgsDemo
{
public static void main(String[] args)
{
//double[] ps = new double[]{0.8,10.0,20.0,30.0,40.0,50.0};
double sum=getSum(0.8,10.0,20.0,30.0,40.0,50.0);
System.out.println(sum);
}
//计算商品总和并且打8折
static double getSum(double cutoff,double ... arr)
{
double sum = 0.0;
for (double price : arr )
{
sum = sum +price;
}
return sum * cutoff;
}
}
数组元素拷贝
class ArrayCopeDemo
{
public static void main(String[] args)
{
int[] src = new int[]{1,2,3,4,5,6,7,8,9,10};//源数组
int[] dest = new int[10];//目标数组
//需求:从src数组中拷贝3,4,5,6元素到dest数组中
printArray(dest);//[0,0,0,0,0,0,0,0,0,0]
copy(src,2,dest,5,4);//拷贝操作
printArray(dest);//[0,0,0,0,0,3,4,5,6,0]
}
/*
参数: src: 源数组
srcPos 从源数组中哪一个索引位置开始拷贝
dest 目标数组
destPos 在目标数组哪一个索引位置开始粘贴
length 拷贝元素的个数
*/
static void copy(int[] src,int srcPos,int[] dest,int destPos,int length)
{
/*
//拷贝3
dest[destPos]=src[srcPos];
//拷贝4
srcPos++; destPos++;
dest[destPos]=src[srcPos];
//拷贝5
srcPos++; destPos++;
dest[destPos]=src[srcPos];
//拷贝6
srcPos++; destPos++;
dest[destPos]=src[srcPos];
*/
//优化后的代码
//i等于每次需要拷贝元素的索引
for (int i = srcPos;i < srcPos + length;i ++ )
{
dest[destPos] = src[i];
destPos++;
}
}
static void printArray(int[] arr)
{
//思路:先打印数组"[]",再获取arr数组里面的元素,然后再做if判断,判断如果当前i的值不是最后一个索引,则拼接
if (arr == null)
{
System.out.println("null");
return;
}
String ret = "[";
for (int i = 0;i < arr.length ;i ++ )
{
ret = ret + arr[i];
//如果当前i不是最后一个索引,则拼接", "
if (i != arr.length - 1)
{
ret = ret + ", ";
}
}
ret = ret + "]";
System.out.println(ret);
}
}
网友评论