一、对for循环的补充
for结构:应用率最高,次数相关的循环结构
二、选择标准?
- 先看循环是否与次数相关:
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:水平制表位,固定占八个位
- 九九乘法表
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
默认值:
byte、short、int、long、char-----0
float、double-----------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);
*/