目录
1.数组的赋值
遍历
2.求最大值
3.向数组中插入元素
4. 增强for循环
5.二重循环
6.countinue和break
比较break和continue
总结
1.数组的赋值
遍历
依次获取数组的所有元素的方式叫遍历
一次次写太繁琐,数组元素太多的时候重复工作量大,使用循环
问题:
处理数组
所以我们一般使用for循环来遍历数组
案例:
接收并计算5位同学的平均分
分析:
public static void main(String[] args) {
/**
*
* 在编写程序的时候,数组和循环往往一起使用,可以大大简化代码,提高效率
*通常使用for循环遍历数组或者给数组赋值
*/
int[] scores = new int[5];//成绩数组
double sum = 0.0;
Scanner input = new Scanner(System.in);
System.out.println("请输入5位学生的成绩");
for(int i = 0;i<scores.length;i++){
scores[i]=input.nextInt();
sum += scores[i];
}
//计算并输出平均分
System.out.println("学员的平均分为" + sum/scores.length);
2.求最大值
public static void main(String[] args) {
int [] scores ={88,54,78,66,90};
int max= scores[0];
//判断比较
for(int i=0;i<scores.length;i++){
if(scores[i]>max){
max=scores[i];
}
}
System.out.println("数组的最大值为"+ max);
}
3.向数组中插入元素
//通过for循环向数组添加元素
int[] scores = new int[5];
for (int i = 0; i < 5; i++) {
scores[i] = 10 + i;
System.out.println("向数组中添加的元素" + scores[i]);
}
4. 增强for循环
用来遍历数组
//增强for循还 遍历数组
for(int s:scores){
System.out.println("向数组中添加的元素" + s);
}
5.二重循环
一个循环体内又包含另一个完整的循环结构
变化一次,内曾循环变化一遍
案例:
package cycle;
import java.util.Scanner;
public class NextingLoopDemo7 {
public static void main(String[] args) {
//计算3个班级平均分
int [] scores = new int[4];//四名学生
int classNum=3;//班级数量
double sum= 0.0;//总成绩
double[] average = new double[classNum];//平均分成绩数组
//循环输入学生成绩
Scanner input = new Scanner(System.in);
//外层循环控制班级数量
for(int i = 0 ; i < classNum ; i++){
//初始化成绩为0
sum = 0.0;
System.out.println("请输入"+(i+1)+"个班级");
//内循环控制每个班学生的数量
for(int j=0;j>scores.length;j++){
System.out.println("第"+(j+1)+"个学员的成绩");
scores[j]= input.nextInt();
sum=sum+scores[j];
}
//计算每个班平均分
average[i] = sum/ scores.length;
System.out.println("第"+(i+1)+"个班级学员的成绩的平均分是"+average[i]);
}
}
}
6.countinue和break
紧接着上一题:
这时候我们就需要使用到continue
package cycle;
import java.util.Scanner;
public class NextingLoopDemo7 {
public static void main(String[] args) {
//计算3个班级平均分
int [] scores = new int[4];//四名学生
int classNum=3;//班级数量
double sum= 0.0;//总成绩
double[] average = new double[classNum];//平均分成绩数组
//记录3个班成绩在85分以上的学院个数
int count = 0;
//循环输入学生成绩
Scanner input = new Scanner(System.in);
//外层循环控制班级数量
for(int i = 0 ; i < classNum ; i++){
//初始化成绩为0
sum = 0.0;
System.out.println("请输入"+(i+1)+"个班级");
//内循环控制每个班学生的数量
for(int j = 0; j < scores.length ; j++){
System.out.println("第"+(j+1)+"个学员的成绩");
scores[j]= input.nextInt();
sum=sum+scores[j];
//如果分数在85以上,count+1
if(scores[i] < 85){
continue;//退出本次循环
}
count++;
}
//计算每个班平均分
average[i] = sum/ scores.length;
System.out.println("第"+(i+1)+"个班级学员的成绩的平均分是"+average[i]);
}
System.out.println("成绩85以上的学生公有"+ count + "人");
}
}
countinue的作用就是跳出本次循环,继续下次循环。
案例2:
package cycle;
import java.util.Scanner;
public class NextingLoopDemo8 {
public static void main(String[] args) {
int count = 0;//记录一共买几件衣服
String choice;//顾客是否离开这家店
Scanner input = new Scanner(System.in);
for(int i =0;i<5;i++){
System.out.println("欢迎光临"+(i+1)+"家专卖店");
for(int j=0;j<3;j++){
System.out.println("确定要离开吗?");
choice = input.next();
if("y".equals(choice)){//y代表是 n代表否
break;
}
System.out.println("买了一件衣服");
count++;
}
System.out.println("商店结账");
}
System.out.println("总共买了"+count +"衣服");
}
}
break:直接跳出循环。
比较break和continue
共同点:
只会影响内存循环执行,对外层循环没有影响
总结
语法
区别2:执行顺序
while循环:先判断,再执行
do-while循环:先执行,再判断
for循环:先判断,再执行
区别3:
1.循环次数确定的情况,通常选用for循环
2.循环次数不确定的情况,通常选用while或do-while循环。