Java学习_day006:嵌套循环与数组

本文深入讲解了循环结构的选用原则,包括for、while和do...while的区别与应用场景,并详细解析了数组的概念、定义、初始化、访问及遍历方法。通过实例演示了如何利用循环结构进行数组操作,如随机加法运算器、九九乘法表生成及数组的最大值查找。
摘要由CSDN通过智能技术生成

一、对for循环的补充

for结构:应用率最高,次数相关的循环结构

二、选择标准?

  1. 先看循环是否与次数相关:
    1.1. 与次数相关时,直接使用for结构;
    1.2. 与次数无关时,再看要素①与③是否相同;
    1.2.1.若相同,直接使用do…while 结构;
    1.2.2. 若不同,直接使用while 结构;

三、continue

break:跳出循环;
continue:跳过循环体中的剩余语句进入下一次循环;

package day006;
import java.util.Scanner;
//随机加法运算器
public class Addition {

	public static void main(String[] args) {

		Scanner scan=new Scanner(System.in);
		int score=0;//得分
		for(int i=1;i<=10;i++){
			//出题、答题、判题
			int a=(int)(Math.random()*100+1);
			int b=(int)(Math.random()*100+1);
			System.out.println("("+i+")"+a+"+"+b+"=? 请输入你认为正确的答案(输入-1终止答题)");//出题
			int answer=scan.nextInt();//答题
			if(answer==-1){
				break;
			}
			if(answer==a+b){
				System.out.println("答对了,总分加五");
				score+=5;
			}else{
				System.out.println("答错了,不加分");
			}//判题
		}
		System.out.println("答题结束,您的总分为"+score+"(满分为五十)");
	}
}
		

四、嵌套循环

\t:水平制表位,固定占八个位
  1. 九九乘法表
for(int a=1;a<=9;a++){//控制行
			for(int i=1;i<=a;i++){//控制列
				System.out.print(i+"*"+a+"="+i*a+"\t");
			}
			System.out.println();//换行
		}
		/*
		 * 执行过程:
		 * a=1
		 *  i=1 1*1=1
		 *  i=2
		 *  换行=\t
		 * a=2
		 *  i=1 1*2=2
		 *  i=2 2*2=4
		 *  \t
		 * a=3
		 *  i=1 1*3=3
		 *  i=2 2*3=6
		 *  i=3 3*3=9
		 * a=4
		 *  i=1 1*4=4
		 *  i=2 2*4=8
		 *  i=3 3*4=12
		 *  i=4 4*4=16
		 * ....
		 */
4.1循环中套循环,一般于多行多列中使用.,外层控制行,内层控制列
4.2执行规则:外层走一次,内层走所有次
4.3建议:嵌套的层数越少越好,能用一层就不用两层,能用两层就不用三层。若业务必须通过三层以上的循环才能解决,说明设计出现了问题。
4.4 break只能跳出一层循环

五、数组

数组:是一种数据类型(引用类型),相同数据类型元素的集合
5.1 定义

int和int【】是两种完全不同的数据类型

int a=5;  //数据
int[] a=new int[5];  //声明int型数组名为a,且a数组包含5个元素,每个元素都是int型,默认值为0;使用了20个字节的内存空间
double[]d=new double[10];//声明浮点型数组d,包含了十个元素,每个元素都为double型,默认值为0.0;使用了80个字节的内存空间
boolean[]b=new boolean[20];//声明布尔型数组b,包含20个元素,每个元素都为boolean型,默认值为false
默认值:
byteshortintlongchar-----0
floatdouble-----------0.0
boolean--------------false
5.2 数组的初始化:初始化数组中的元素
int[]arr=new int[3];//0,0,0
int[]arr={1,4,7};//1,4,7
int[]arr=new int[]{1,4,7};//1,4,7
int[]arr;arr={1,4,7};//编译错误,此方式只能声明同时初始化
5.3使用

①、通过(数组名.length)可以获取数组的长度(元素的个数)

int[]arr=new int[3];
System.out.println(arr.length);//3

②、通过下标/索引来访问数组中的元素
下标从0开始,最大到(数组的长度-1)

int[]arr=new int[3];   //0.0.0,相当于int a=b=c=0;
//想给第二个数赋值为100;
arr[0]-----代表arr中的第一个元素
arr[1]-----代表arr中的第二个元素
arr[2]-----代表arr中的第三个元素
int[]arr=new int[3];
arr[0]=100;//给arr中第一个元素赋值为100
arr[1]=200;//给arr中第二个元素赋值为200
arr[2]=300;//给arr中第三个元素赋值为300
arr[3]=400;//错误,非编译错误,数组下标越界异常
System.out.println(arr[2]);//想输出数组中最后一个元素的值
5.4 数组的遍历:从头到尾将所有数据走一遍
int[]arr=new int[10];
for(int i=0;i<arr.length;i++){//遍历arr数组
arr[i]=100;//arr[i]代表了arr中每一个元素
System.out.println(arr[i]);
}
5.5数组的复制

next day
练习

/*5 int sum=0;
		 * for(int a=1;a<101;a++){
		 * sum=sum+a;
		 * }
		 * System.out.println(sum);
		 */
		/*4 int a=0;
		 * for(int b=1;b<=100;b++){
		 * a=a+b;
		 * }
		 * System.out.println("sum="+a);
		 */
		/*3 int sum=0;
		 * for(int a=1;a<101;a++){
		 * sum=sum+a; 
		 * }
		 * System.out.println("sum="+sum);
		 */
		/*2 int s=0;
		 * for(int a=1;a<101;a++){
		 *  s=a+s;
		 *  }
		 * System.out.println(s);
		 */
		/*1 int a=0;
		 * for(int s=1;s<=100;s++){
		 * a=s+s;
		 * }
		 * System.out.println("sum="+a);
		 */
int score=0;//得分
		for(int i=1;i<=10;i++){
			//出题、答题、判题
			int a=(int)(Math.random()*100+1);
			int b=(int)(Math.random()*100+1);
			System.out.println("("+i+")"+a+"+"+b+"=? 请输入你认为正确的答案(输入-1终止答题)");//出题
			int answer=scan.nextInt();//答题
			if(answer==-1){
				break;
			}
			if(answer==a+b){
				System.out.println("答对了,总分加五");
				score+=5;
			}else{
				System.out.println("答错了,不加分");
			}//判题
		}
		System.out.println("答题结束,您的总分为"+score+"(满分为五十)");
		/*5 import java.util.Scanner;
		 * Scanner scan=new Scanner(System.in);
		 * int score=0;
		 * for(int i=1;i<11;i++){
		 * int a=(int)(Math.random()*100+1);
		 * int b=(int)(Math.random()*100+1);
		 * System.out.println("("+i+")"+a+"+"+b+"=? 请输入答案");
		 * int num=scan.nextInt();
		 * if(num==a+b){
		 * System.out.println("true,score+5");
		 * score+=5;
		 * }else{System.out.println("false");
		 * }
		 * }
		 * System.out.println("score="+score);
		 */
		/*4 import java.util.Scanner;
		 * Scanner scan=new Scanner(System.in);
		 * int score=0;
		 * for(int i=1;i<=10;i++){
		 * int a=(int)(Math.random()*100+1);
		 * int b=(int)(Math.random()*100+1);
		 * System.out.println("("+i+")"+a+"+"+b+"=? 请输入答案");
		 * int num=scan.nextInt();
		 * if(num==a+b){
		 * System.out.println("true,score+5");
		 * score+=5;
		 * }else{
		 * System.out.println("false");
		 * }
		 * }
		 * System.out.println("end,score="+score);
		 */
		/*3 import java.util.Scanner;
		 * Scanner scan=new Scanner(Syatem.in);
		 * int score=0;
		 * for(int i=1;i<11;i++){
		 * int a=(int)(Math.random()*100+1);
		 * int b=(int)(Math.random()*100+1);
		 * System.out.println("("+i+")"+a+"+"+b+"=? 请输入答案");
		 * int num=scan.nextInt();
		 * if(num==a+b){
		 * System.out.println("true,score+5");
		 * }else{
		 * System.out.println("false");
		 * }
		 * }
		 * System.out.println("over,score="+score);
		 */
		/*2 import java.util.Scanner;
		 * Scanner scan=new Scanner(System.in);
		 * int score=0;
		 * for(int i=1;i<=10;i++){
		 * int a=(int)(Math.random()*100+1);
		 * int b=(int)(Math.random()*100+1);
		 * System.out.println("("+i+")"+a+"+"+b+"=? 请输入答案");
		 * int num=scan.nextInt();
		 * if(num==a+b){
		 * System.out.println("true,score+5");
		 * score+=5;
		 * }else{
		 * System.out.println("false");
		 * }
		 * }
		 * System.out.println("over,score="+score);
		 */
		/*1 import java.util.Scanner;
		 * Scanner scan=new Scanner(System.in);
		 * int score=0;
		 * for(int i=1;i<=10;i++){
		 * int a=(int)(MAth.random()*100+1);
		 * int b=(int)(MAth.random()*100+1);
		 * System.out.println("("+i+")"+a+"+"+b+"=? 请输入答案");
		 * int num=scan.nextInt();
		 * if(num==a+b){
		 * System.out.println("true,score+5");
		 * score+=5;
		 * }else{
		 * System.out.println("false");
		 * }
		 * }
		 * System.out.println("over,score="+score);
		 */
for(int a=1;a<=9;a++){
			for(int i=1;i<=a;i++){
				System.out.print(i+"*"+a+"="+i*a+"\t");
			}
			System.out.println();//换行
		}
		/*5 for(int a=1;a<=9;a++){
		 * for(int i=1;i<=a;i++){
		 * System.out.print(i+"*"+a+"="+i*a+"\t");
		 * }
		 * System.out.println();
		 * }
		 */
		/*4 for(int a=9;a>=1;a--){
		 * for(int i=1;i<=a;i++){
		 * System.out.print(i+"*"+a+"="+i*a+"\t");
		 * }
		 * System.out.println();
		 * }
		 */
		/*3 for(int a=1;a<10;a++){
		 * for(int i=1;i<=a;i++){
		 * System.out.prin(i+"*"+a+"="+i*a+"\t");
		 * }
		 * System.out.println();
		 * }
		 */
		/*2 for(int a=9;a>0;a--){
		 * for(int i=1;i<=a;i++){
		 * System.out.print(i+"*"+a+"="+i*a+"\t");
		 * }
		 * System.out.println();
		 * }
		 */
		/*1 for(int a=1;a<10;a++){
		 * for(int s=1;s<=a;s++){
		 * System.out.print(s+"*"+a+"="+a*s+"\t");
		 * }
		 * System.out.println();
		 * }
		 */
int[]arr1=new int[10];//定义
		int[]arr2=new int[3];//初始化0.0.0
		int[]arr3={1,4,7};//初始化1.4.7
		int[]arr4=new int[]{1,4,7};//初始化1.4.7
		int[]arr5;
		//arr5={1,4,7};f,格式错误
		arr5=new int[]{1,4,7};//t
		//数组的访问
		System.out.println(arr5.length);
		arr5[0]=100;//给arr5的第一个元素赋值100
		arr5[1]=100;//给arr5的第二个元素赋值100
		//arr5[3]=100;//运行时发生数组下标越界的异常
		System.out.println(arr5[arr5.length-1]);//输出arr5中的最后一个元素
		//数组的遍历
		int[]as=new int[10];
		for(int i=0;i<as.length;i++){//遍历as数组
			as[i]=100;//给as中的每一个元素都赋值为100
			System.out.println(as[i]);
		}
		/*5 int[]arr=new int[10];
		 * int[]arr1={1,4,7};
		 * int[]arr2=new int[]{1,4,7};
		 * int[]arr3;
		 * arr3=new int[]{1,4,7}
		 * System.out.println(arr.length);
		 * arr[0]=1;
		 * System.out.println(arr[arr.length-1]);
		 * for(int i=0;i<arr.length;i++){
		 * arr[i]=5;
		 * System.out.println(arr[i]);
		 * }
		 */
		/*4 int[]arr=new int[10];
		 * int[]arr1={1,4,7};
		 * int[]arr2=new int[]{1,4,7};
		 * int[]arr3;
		 * arr3=new int[]{1,4,7};
		 * System.out.println(arr.length);
		 * arr[0]=1;
		 * System.out.println(arr[arr.length-1]);
		 * for(int i=0;i<arr.length;i++){
		 * arr[i]=5;
		 * System.out.println(arr[i]);
		 * }
		 */
		/*3 int[]arr=new int[10];
		 * int[]arr1={1,2,3};
		 * int[]arr2=new int[]{1,2};
		 * int[]arr3;
		 * arr3=new int[]{1,5,7};
		 * System.out.println(arr.length);
		 * arr[2]=10;
		 * System.out.println(arr[arr.length-1});
		 * for(int a=0;a<arr.length;a++){
		 * arr[a]=5;
		 * System.out.println(arr[a]);
		 * }
		 */
		/*2 int[]arr=new int[11];
		 * int[]arr1={1,2,5};
		 * int[]arr2=new int[]{1,5,7};
		 * int[]arr3;
		 * arr3=new int[]{4,4,4};
		 * arr[0]=7;
		 * System.out.println(arr.length);
		 * System.out.println(arr[arr.length-1]);
		 * for(int a=0;a<arr.length;a++){
		 * arr[a]=7;
		 * System.out.println(arr[a]);
		 * }
		 */
		/*1 int[]arr=new int[19];
		 * int[]arr1={7,8,9};
		 * int[]arr2=new int[]{8,7,5};
		 * int[]arr3;
		 * arr3=new int[]{4,5,6,8};
		 * arr[5]=6;
		 * System.out.println(arr.length);
		 * System.out.println(arr[arr.length-1]);
		 * for(int i=0;i<arr.length;i+=1){
		 * arr[i]=15;
		 * System.out.println(arr[i]);
		 * }
		 */
		
int[]arr=new int[10];
		for(int i=0;i<arr.length;i++){
			arr[i]=(int)(Math.random()*100);//0~99之间的数赋值
			System.out.println(arr[i]);
		}
		int max=arr[0];//假设第一个元素最大
		for(int i=1;i<arr.length;i++){//遍历剩余元素
			if(max<arr[i]){//若剩余元素大于max
				max=arr[i];//修改max的值为较大的那个
			}
		}
		System.out.println("max="+max);
		/*5 int[]arr=new int[10];
		 * for(int i=0;i<arr.length;i++){
		 * arr[i]=(int)(Math.random()*100);
		 * System.out.println(arr[i]);
		 * }
		 * int max=arr[0];
		 * for(int i=1;i<arr.length;i++){
		 * if(max<arr[i]){
		 * max=arr[i];
		 * }
		 * }
		 * System.out.println("max="+max);
		 */
		/*4 int[]arr=new int[10];
		 * for(int i=0;i<arr.length;i++){
		 * arr[i]=(Math.random()*100);
		 * System.out.println(arr[i]);
		 * }
		 * int max=arr[0];
		 * for(int i=1;i<arr.length;i++){
		 * if(max<arr[i]){
		 * max=arr[i];
		 * }
		 * }
		 * System.out.println("max="+max);
		 */
		/*3 int[]arr=new int[12];
		 * for(int i=0;i<arr.length;i++){
		 * arr[i]=(int)(Math.random()*100);
		 * System.out.println(arr[i]);
		 * }
		 * int max=arr[0];
		 * for(int i=1;i<arr.length;i++){
		 * if(max<arr[i]){
		 * max=arr[i];
		 * }
		 * }
		 * System.out.println("max="+max);
		 */
		/*2 int[]arr=new int[10];
		 * for(int i=0;i<arr.length;i++){
		 * arr[i]=(int)(Math.random()*10);
		 * Syetm.out.println(arr[i]);
		 * }
		 * int max=arr[i];
		 * for(int i=1;i<arr.length;i++){
		 * if(max<arr[i]){
		 * max=arr[i];
		 * }
		 * }
		 * System.out.println("max="+max);
		 */
		/*1 int[]as=new int[15];
		 * for(int a=0;a<as.length;a++){
		 * as[a]=(int)(Math.random()*100);
		 * System.out.println(as[a]);
		 * }
		 * int min=as[0];
		 * for(int a=1;a<as.length;a++){
		 * if(min>as[a]){
		 * min=as[a];
		 * }
		 * }
		 * System.out.println("min="+min);
		 */
//  1/1+1/2+....+1/15=?
		/*5 double x=0;
		for(int y=1;y<16;y++){
			x=x+1.0/y;
		}
		System.out.println(x);*/
		/*4 double sum=0;
		for(double x=1;x<=15;x++){
			sum=sum+1/x;
		}
		System.out.println(sum);*/
		/*4double s=0;
		for(int x=1;x<16;x++){
			s=s+1.0/x;
		}
		System.out.println(s);*/
		/*3double a=0;
		for(int x=1;x<16;x++){
			a=a+x;
		}
		System.out.println(a);*/
		/*2double a=0;
		for(int s=1;s<16;s++){
			a=a+s;
		}
		System.out.println(a);*/
		/*1double d=0;
		for(int a=1;a<16;a++){
			d=a+d;
		}
		System.out.println(d);*/
	//声明一个数组arr包含100个元素,元素为0~99之间的随机数
		//统计18出现的次数
		int[]arr=new int[100];
		for(int i=0;i<arr.length;i++){//填充数据并且输出
			arr[i]=(int)(Math.random()*100);
			System.out.println(arr[i]);
		}
		int x=0;
		for(int i=0;i<arr.length;i++){//查找18出现的次数
			if(arr[i]==18){
				x+=1;
			}
		}
		System.out.println("18出现的次数为"+x);
		/*5int[]arr=new int[100];
		 * for(int i=0;i<arr.length;i++){
		 * arr[i]=(int)(Math.random()*100);
		 * System.out.println(arr[i]);
		 * }
		 * int x=0;
		 * for(int i=0;i<arr.length;i++){
		 * if(arr[i]==20){
		 * x++;
		 * }
		 * }
		 * System.out.println("20出现的次数为"+x);
		 */
		/*4 int[]arr=new int[100];
		 * for(int i=0;i<arr.length;i++){
		 * arr[i]=(int)(Math.random()*100);
		 * System.out.println(arr[i]);
		 * }
		 * int sum=0;
		 * for(int i=0;i<arr.length;i++){
		 * if(arr[i]==2){
		 * sum++;
		 * }
		 * }
		 * System.out.println("2出现的次数为"+sum);
		 */
		/*3int[]arr=new int[100];
		 * for(int i=0;i<100;i++){
		 * arr[i]=(int)(Math.random()*100);
		 * System.out.println(arr[i]);
		 * }
		 * int a=0;
		 * for(int s=0;s<arr.length;s++){
		 * if(arr[s]==50){
		 * a++;
		 * }
		 * }
		 * System.out.println("50出现的次数为"+a);
		 */
		/*2 int[]arr=new int[100];
		 * for(int s=0;s<arr.length;s++){
		 * arr[s]=(int)(Math.random()*100);
		 * System.out.println(arr[s]);
		 * }
		 * int a=0;
		 * for(int s=0;s<arr.length;s++){
		 * if(arr[s]==45){
		 * a++;
		 * }
		 * }
		 * System.out.println("45出现的次数为"+a);
		 */
		/*1 int[]arr=new int[100];
		 * for(int a=0;a<arr.length;a++){
		 * arr[a]=(int)(Math.random()*100);
		 * System.out.println(arr[s]);
		 * }
		 * int y=0;
		 * for(int s=0;s<arr.length;s++){
		 * if(arr[s]==66){
		 * y++;
		 * }
		 * }
		 * System.out.println("66出现的次数为"+y);
		 */
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值