Java语言基础(7)

1 for循环

  案例:Demo1
    1+1/2+1/3+1/4+1/5+1/6+...+1/100 = ?
    1/1+1/2+1/3+1/4+1/5+1/6+...+1/100 = ?
    分子都是1,分母是1~100
    首先定义一个double类型变量sum=0,保存累加之和
    第1次:sum = sum + 1/1
    第2次:sum = sum + 1/2
    第3次:sum = sum + 1/3
    第4次:sum = sum + 1/4
    第5次:sum = sum + 1/5
    ...
    第100次:sum = sum + 1/100
    定义变量double i = 0,i的取值1~100,i作为分母
    公式:sum = sum + 1/i
    for(double i=1;i<=100;i++){
      sum = sum + 1/i;
    }
  案例:Demo1
    1/1+1/2+1/3+1/4+1/5+1/6+...+1/100 = ?

public class Demo1 {
  public static void main(String[] args) {
	double sum = 0;  
	for(double i=1;i<=100;i++){
	  sum = sum + 1/i;	
	}
	System.out.println(sum);
  }
}

public class Demo2 {
//1+1/3+1/5+1/7+1/9+...1/99 = ? 
//1/1+1/3+1/5+1/7+1/9+...1/99 = ?
//规律:分子都是1,分母1~99之间的奇数
  public static void main(String[] args) {
//1 求出分母
	double sum = 0;
	for(double i=1;i<=99;i=i+2){
//2 累加求和:sum = sum+1/i
	  sum = sum + 1/i; 
	}
	System.out.println("累加之和:"+sum);
  }
}

//Demo3:
//1+1/2+1/4+1/6+1/8+1/10+...+1/200 = ?
public class Demo3 {
//1+(1/2+1/4+1/6+1/8+1/10+...+1/200) = ?
  public static void main(String[] args) {
	double sum=1;
	for(double i=2;i<=200;i=i+2){
	  sum = sum + 1/i;	
	}
	System.out.println("累加之和:"+sum);
  }
}

2 break和continue
  1)break:直接退出循环语句。
  2)continue:结束本次循环,继续开始下次循环。
  案例:Demo4

public class Demo4 {
  public static void main(String[] args) {
	for(int i=1;i<=30;i++){
	  if(i==10){
		break;//直接退出循环  
	  }	
	  System.out.println(i);	
	}
  }
}

public class Demo5 {
  public static void main(String[] args) {
	for(int i=1;i<=30;i++){
	  if(i==10){
		continue;//结束本次循环,继续开始下次循环  
	  }	
	  System.out.println(i);	
	}
  }
}

public class Demo6 {
//使用for循环,求出1~300之间所有的奇数累加之和,
//如果累加之和一旦超过5000,直接退出for循环,并
//输出当前的累加之和。
  public static void main(String[] args) {
	int sum = 0;
	for(int i=1;i<=300;i=i+2){	
	  sum = sum + i;	
	  if(sum>5000){
		break;  
	  }
	}
	System.out.println(sum);
  }	
}

//Demo7: 使用for循环,求出1~100之间所有的奇数
//(2种写法)  
public class Demo7 {
  public static void main(String[] args) {
//方法1:
	for(int i=1;i<=100;i++){
	  if(i%2!=0){
		System.out.println(i);  
	  }	
	}
//在for循环中定义的变量i,只在for循环中有效,在
//for循环外面无效
//	System.out.println(i);
	System.out.println();
//方法2:	
	for(int i=1;i<=100;i=i+2){
	  System.out.println(i);	
	}
  }
}

3 循环嵌套
  1)输出内容,不换行
    System.out.print("要显示的内容");
    案例:Demo8

public class Demo8 {
  public static void main(String[] args) {
	System.out.print("李斯,");
	System.out.print("霍光,");
	System.out.print("房玄龄,杜如晦,");
	System.out.print("李善长,张居正。");
	System.out.println();//换行
	System.out.println("白起");
	System.out.println("卫青,霍去病");
	System.out.println("李靖,苏定方");
	System.out.println("徐达,蓝玉");
  }
}

public class Demo9 {
  public static void main(String[] args) {
//*****
	System.out.println("*****");  
	for(int i=1;i<=5;i++){
	  System.out.print("*");
	}
  }
}

public class Demo10 {
//***
//***
//***
  public static void main(String[] args) {
	for(int i=1;i<=6;i++){//行数
	  for(int k=1;k<=10;k++){//*列数
		System.out.print("*");  
	  }	
	  System.out.println();
	}	
  }
}

//Demo11:从控制台输入两个整数,分别作为打印长方形*的
//行数row和列数col
//比如:row:2   col:3	
//***
//***		
//外层循环:i=1  i<=3(true)
//内层循环第1次:k=1  k<=3(true) * k++(k:2)
//       第2次:	   k<=3(true) * k++(k:3)
//		  第3次:         k<=3(true) * k++(k:4)
//	          第4次:         k<=3(false) 退出内层循环
//换行	
//								i++(i:2)
//外层循环第2次:  i<=3(true)
//内层循环:  *** 
//换行	
//								i++(i:3)
//外层循环第3次:  i<=3(true)
//内层循环: ***               
//换行	
//								i++(i:4)
//外层循环第4次:  i<=3(false)  退出整个循环
import java.util.Scanner;
public class Demo11 {
  public static void main(String[] args) {
	Scanner sc = new Scanner(System.in);
	System.out.println("请输入行数:");
	int row = sc.nextInt();
	System.out.println("请输入列数:");
	int col = sc.nextInt();
	for(int i=1;i<=row;i++){//行数
	  for(int k=1;k<=col;k++){//列数
		System.out.print("*");
	  }	
	  System.out.println();
	}
  }
}

public class Demo12 {
/*
*
**
***
****
*****
*/
  public static void main(String[] args) {
	for(int i=1;i<=10;i++){//行数
	  for(int k=1;k<=i;k++){
		System.out.print("*");  
	  }	
	  System.out.println();
	}
  }	
}

//Demo13:从控制台输入一个整数,作为打印直角三角形
//*的行数row,打印直角三角形*
//row:3
//*
//**
//***  
//每行*的个数,跟当前的行数一致(i)。
//内层循环每次打印i个*,内层循环执行i次
//控制内层循环执行次数的k的取值:1~i
import java.util.Scanner;
public class Demo13 {
  public static void main(String[] args) {
	Scanner sc = new Scanner(System.in);
	System.out.println("请输入行数:");
	int row = sc.nextInt();
	for(int i=1;i<=row;i++){
	  for(int k=1;k<=i;k++){
		System.out.print("*");  
	  }	
	  System.out.println();
	}
  }
}

public class Demo14 {
//1*1=1
//1*2=2  2*2=4
//1*3=3  2*3=6  3*3=9
//1*4=4	 2*4=8  3*4=12  4*4=16
//...
//1*9=9  2*9=18 ...				9*9=81	
  public static void main(String[] args) {
	for(int i=1;i<=9;i++){
	  for(int k=1;k<=i;k++){
		System.out.print(k+"*"+i+"="
				+i*k+"  ");  
	  }	
	  System.out.println();
	}
  }	
}

  2)循环嵌套:在一个循环语句的内部,又包含了一个循环语句。外层循环执行一次,内层循环执行所有。
    for(int i=1;i<=3;i++){
      for(int k=1;k<=3;k++){
        System.out.print("*");
      }
      System.out.println();
    }


4 数组

  把相同类型的数据聚合在一起,使用数组来保存相同类型的多个数据。
  1)创建数组格式:
    数据类型[] 数组名 = new 数据类型[数据个数];
    或者
    数据类型 数组名[] = new 数据类型[数据个数];
    eg:int[] ary = new int[5];
  2)元素:数组中使用元素来保存数据,元素就相当于变量
  3)下标:用来标识数组中的每一个元素,下标的取值从0开始,最后一个元素的下标值(元素总个数-1)
    数组名[下标值] ---> 元素
    eg:ary[0] = 100;    //把100赋值给ary中第1个元素
      ary[1] = 200;
      ary[2] = 300;
      ary[3] = 400;
      ary[4] = 500;
    案例:Demo15

public class Demo15 {
  public static void main(String[] args) {
	int[] ary = new int[6];
	ary[0] = 100;
//分别把200,300,400,500,600依次的给其他元素赋值
	ary[1] = 200;
	ary[2] = 300;
	ary[3] = 400;
	ary[4] = 500;
	ary[5] = 600;
	System.out.println(ary[0]);
	System.out.println(ary[1]);
	System.out.println(ary[2]);
	System.out.println(ary[3]);
	System.out.println(ary[4]);
	System.out.println(ary[5]);
//	ary[6] = 1000;
//报错了,ary数组中只能保存6个元素,元素下标的取值
//0~5,ary[6]中下标的取值超过范围。	
  }
}

public class Demo16 {
  public static void main(String[] args) {
	double ary[] = new double[5];
	ary[0] = 1.6;
	ary[1] = 2.3;
	ary[2] = 9.66;
	ary[3] = 10.55;
	ary[4] = 100.1;
//输出每一个元素的值	
	System.out.println(ary[0]);
	System.out.println(ary[1]);
	System.out.println(ary[2]);
	System.out.println(ary[3]);
	System.out.println(ary[4]);
  }
}

public class Demo17 {
  public static void main(String[] args) {
	String[] ary = new String[6];
	ary[0] = "徐志摩";
	ary[1] = "梁思成";
	ary[2] = "林徽因";
	ary[3] = "林语堂";
	ary[4] = "钱钟书";
	ary[5] = "冰心";
	System.out.println(ary[0]);
	System.out.println(ary[1]);
	System.out.println(ary[2]);
	System.out.println(ary[3]);
	System.out.println(ary[4]);
	System.out.println(ary[5]);
  }
}

  4)元素的默认值:系统默认给元素赋的值
    案例:Demo18

public class Demo18 {
  public static void main(String[] args) {
//整型数组元素的默认值:0
	int[] ary = new int[100];
	System.out.println(ary[1]);//0
	long[] ary2 = new long[100];
	System.out.println(ary2[99]);//0
//浮点类型数组元素的默认值:0.0
	double[] ary3 = new double[500];
	System.out.println(ary3[10]);//0.0
//布尔类型数组元素的默认值:false
	boolean[] ary4 = new boolean[100];
	System.out.println(ary4[0]);//false
//引用类型数组元素的默认值:null
	String[] ary5 = new String[20];
	System.out.println(ary5[1]);
//null:用来表示引用类型变量没有值,为空。
  }
}

    整数类型数组元素的默认值是0
    浮点类型数组元素的默认值是0.0
    布尔类型数组元素的默认值是false
    引用类型数组元素的默认值是null
    null:当前引用类型的变量(元素)没有值,为空。
  5)使用for循环来操作数组中的元素
    分析:数组中通过下标来区分开每一个元素,下标的取值从0~元素总个数-1。通过控制循环次数变量i的取值,来指向数组中的每一个元素,i的取值0~元素总个数-1,作为元素的下标值。
    for(int i=0;i<=元素总个数-1;i++){
      数组名[i] ---> 元素
    }
    案例:Demo19

public class Demo19 {
//使用for循环来操作数组中的元素
//控制循环次数变量i的取值,作为数组元素的下标值
//for(int i=0;i<=元素总个数-1;i++){
//	数组名[i] -----> 元素
//}	
  public static void main(String[] args) {
//创建一个int类型数组ary,包含100个元素,分别把
//0~99之间的每一个整数赋值给ary数组中的每一个元素
//最后输出每一个元素的值
	int[] ary = new int[100];
	for(int i=0;i<=99;i++){
	  ary[i] = i;
	  System.out.println(ary[i]);
	}

	
/*	
	for(int i=0;i<=99;i++){
	  System.out.println(ary[i]);	
	}
	*/
  }	
}

public class Demo20 {
//Demo20:创建一个int类型数组ary,包含了200个元素,
//把0~199之间每一个整数给ary数组元素依次赋值,输出
//每一个元素的值。
  public static void main(String[] args) {
	int[] ary = new int[200];
	for(int i=0;i<=ary.length-1;i++){
	  ary[i] = i;
	  System.out.println(ary[i]);
	}
  }	
}

public class Demo21 {
//创建一个int类型数组ary,包含100个元素,把1~100
//之间的每一个整数给ary数组中元素依次赋值,最后输出
//每一个元素的值
//i     0~99
//i+1   1~100
  public static void main(String[] args) {
	int[] ary = new int[100];
	for(int i=0;i<=99;i++){
	  ary[i] = i+1;
	  System.out.println(ary[i]);
	}
  }  	
}

public class Demo22 {
//创建一个int类型数组ary,包含200个元素,把1~200之间
//每一个整数给ary数组中元素依次赋值
//1 输出每一个元素的值
//2 求出所有元素的累加之和
//	sum = sum + i
//	sum = sum + ary[i]
  public static void main(String[] args) {
    int[] ary = new int[200];
    for(int i=0;i<=199;i++){
      ary[i] = i+1;	
      System.out.println(ary[i]);
    }
//累加求和: sum = sum + ary[i]
    int sum = 0;
    for(int i=0;i<=199;i++){
      sum = sum + ary[i];	
    }
    System.out.println("元素累加之和:"+sum);
  }	
}

  6)数组名.length:返回是数组中元素的总个数
    案例:Demo23

public class Demo23 {
  public static void main(String[] args) {
	int[] ary = new int[200];
	System.out.println(ary.length);//200
  }
}

    for(int i=0;i<=数组名.length-1;i++){
      数组名[i] ---> 元素
    }

原文地址:https://www.cnblogs.com/KalosOwen/p/8410774.html