java基础语言+面向对象_经典案例——65个

int x = 4;
int y = (x++)+(++x)+(X*10);
System.out.println(x); //6
System.out.println(y);//70
y:x++,++x=6; 6*10=60,  60加上前面2个x的值,分别为4和6.等于4+6+60=70;

//调用类
/* 构造方法,构造方法重复使用。比如action里面有的, 可以再建一个构造方法jj,调用action,
并且可以再jj里添加东西,再建一个构造方法kk,又在方法里添加东西,kk里面有jj和action,
而kk里有都jj里没有,可以灵活在其他类里调用这几个方法。*/

       Airplane a;
       Airplane a1;
        BigAirplane big;
         BigAirplane big1;
         Hero h;
       Bullet bu;
        Bullet bu1;
          Bee b;
           Bee b1;
       //Sky sky;

    void action(){
	Sky sky = new Sky();
	h = new Hero();
	a = new Airplane();
	a1 = new Airplane();
	big = new BigAirplane();
	big1 = new BigAirplane();
	bu = new Bullet(2, 3);
	bu1 = new Bullet(2,3);
	b = new Bee();
	b1 = new Bee();
	System.out.println("天空的宽"+sky.width+"天空的高"+sky.height+"天空的速度"+sky.speed);
	System.out.println("英雄机的宽"+h.width+"英雄机的高"+h.height+"英雄机的速度"+h.speed);
	System.out.println("小敌机的宽"+a.width+"小敌机的高"+a.height+"小敌机的速度"+a.speed);
	System.out.println("大敌机的宽"+big.width+"大敌机的高"+big.height+"大敌机的速度"+big.speed);
	
	System.out.println("蜜蜂的宽"+b.width+"蜜蜂的高"+b.height+"蜜蜂的速度"+b.ySpeed);
}
void jj(){
	action();
	System.out.println("测试11111");
}
void kk(int aaa){
	jj();
	System.out.println("测试2222");
	
}
 public static void main(String[] args){
	 World world = new World();
	 world.kk(5);
	 
	 Bee sh = new Bee();
	 sh.sss();	
 }
}
—————— // 单独调用构造方法里的一个值
/**天空*/
           public class Sky {
        /*
         * 高度height,宽度width,横坐标x
         * 竖坐标y,下落速度speed,切换图片y1
         */
	int height;
	int width;
	int x;
	int y;
	int y1;
	int speed;
	Sky(){
		height = 700;
		width = 400;
		x = 0;
		y = 1;
		y1 = -1;
		speed = 1;
	}
	Sky(int a){
		this.x= a;
		System.out.println(this.x);
	}
	void step(){
		Sky a = new Sky(); // 初始化Sky
		int aa = a.height;  // 调取Sky中需要的值
		System.out.println(aa); //输出
		System.out.println("天空下滑了"+speed);
	}
	public static void main(String[] args){
		Sky sky = new Sky();
		sky.step();
		
	}
}

———————————————————————————————————

1.用户在控制台输入 3 个数值,需要找出这 3 个数值中的最小值,要求使用 if 语句来实现。系统交互信息如图所示:

    // package lianxi;
	import java.util.Scanner;
   // public class Demo1 {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		System.out.println("请输入第一个整数");
		int num1 = scan.nextInt();
		System.out.println("请输入第二个整数");
		int num2 = scan.nextInt();
		System.out.println("请输入第三个整数");
		int num3 = scan.nextInt();
		if (num1 <= num2 && num1 <= num3) {
			System.out.println("最小数是:" + num1);
		}
		if (num2 <= num1 && num2 <= num3) {
			System.out.println("最小数是:" + num2);
		}
		if (num3 <= num1 && num3 <= num2) {
			System.out.println("最小数是" + num3);
		}
	}
}

2// 正三角形 表达式

public static void main(String[] args){
 // 1.定义行数 6行
	int lie = 6;
	//2.让行数累加并小于6
	for(int a = 1;a<=6;a++){
		//3.正三角形条件 用输出空白 替代
	for(int b = lie-1;b>=a;b--){
		System.out.print(" ");
	}
	//4.计算*数量并输出
	for(int c = 1; c<=a*2-1;c++){
		System.out.print("*");
	}
	System.out.println(); // 增加*换行条件
	}
	}
}}
// 直角三角形表达式
	public static void main(String[] args){	
             //1. 定义列数 10列
	int lie = 10;
	//2.定义一组数,让列依次累加
	for (int a = 0;a<=lie;a++){
		//3.计算*的数量并输出
		for(int b = 1; b<=a+1;b++){
			System.out.print("*");
		}
		System.out.println();// 增加*换行条件
	}
}
}
  //倒输出三角形
       public static void main(String[] args){
		for(int a = 1;a<=9;a++){
			for(int b=a;9-b>=0;b++){
				//for(int b= 9;b>=a;b--)
				System.out.print(a+"*"+b +"="+a*b+" ");		
			}
			System.out.println();
		}}
// 用户输入高度 显示菱形 
	public static void main(String[] args) {
		Scanner scan=new Scanner(System.in);
		System.out.println("菱形的高:");
		int height=scan.nextInt();
		int b=(height*2-1)+8; //+8是中间菱形到边框的距离。8个为两边,一边4个空格
		int a=b/2;//a=21/2=10
		for(int i=1;i<=height+1;i++){ // 外层,+1是包括 最顶层的*
			for(int j=1;j<=b;j++){ //外层一次,内层走所有次
				if(i==1){ // 输出b
					System.out.print("*");
				}else if(j==1 || (j>=2+a && j<=b-a-1) || j==b){ //满足中间条件输出*,
					System.out.print("*");
					}else{//不满足中间或者两边条件输出空格" ";
					System.out.print(" ");
					}
			}
			a--;//a--=9, 初始为10 ,a=21/2=10(int为整型)   a=2循环结束
			System.out.println();
		}
		a=a+2;//a--后最终值为2,故2+2=4
		//System.out.println(a);
		for(int i=1;i<=height;i++){ //下半部分,同上
			for(int j=1;j<=b;j++){
				if(i==height){
					System.out.print("*");
				}else if(j==1 || (j>=2+a && j<=b-a-1) || j==b){
					System.out.print("*");
					}else{
					System.out.print(" ");
					}
			}
			a++;  //a初始为2,+1=3。。。。。
		System.out.println();
		}}}

  不可变高度菱形:
             public static void main(String[] args){
	for(int a = 1;a<=21;a++){
		System.out.print("*");
	}
	System.out.println();
	for(int i=1;i<=7;i++){
		System.out.print("*   ");		
		for(int j=1;j<=7-i;j++){			
			System.out.print(" ");
		}		
		for(int k=1;k<=2*i-1;k++){
			System.out.print("*");
			
		}		//System.out.print("    *");
		for(int j=1;j<=7-i;j++){			
			System.out.print(" ");
		}
		System.out.print("   *");
		System.out.println();
		}	
	    for(int a=6;a>=1;a--){
	    	System.out.print("*   ");
	    	for(int b=6;b>=a;b-- ){
	    		System.out.print(" ");
	    	}
	    	for(int c=1;c<=2*a-1;c++){
	    		System.out.print("*");
	    	}//System.out.print("    *");
	    	for(int j=7-a;j>=1;j--){			
				System.out.print(" ");
			}
			System.out.print("   *");
	    	System.out.println();
	    	
	    }
	    for(int a = 1;a<=21;a++){
			System.out.print("*");
		}
	
	}		
}

3算术运算代码:

	import java.io.IOException;
	import java.util.Scanner;
	public class Demo6 {

	public static void main(String[] args) throws IOException {
	Scanner scan=new Scanner(System.in);
	System.out.println("请输入第一个整数:");
	int num1=scan.nextInt();
	System.out.println("请输入第二个整数:");
	int num2=scan.nextInt();
	System.out.println("请输入运算符(+,-,*,/,%):");
	char opt=(char)System.in.read();
	int result=0;  //保存运行的结果
	switch(opt){
	case '+':
		 result = num1+num2;
		 System.out.println(num1+"+"+num2+"="+result);
		 break;
	case'-':
		result=num1-num2;
		System.out.println(num1+"-"+num2+"="+result);
		break;
	case'*':
		result=num1*num2;
		System.out.println(num1+"*"+num2+"="+result);
break;
	case'/':
		if(num2!=0){  //除数不能为0
			result=num1/num2;
			System.out.println(num1+"/"+num2+"="+result);
		}else{
			System.out.println("除数不能为0");
		}
		break;
	case'%':
		result=num1%num2;
		System.out.println(num1+"%"+num2+"="+result);
		break;
		default:
			System.out.println("运算符输入错误!!!");
	}
	}

}


4计算面积和周长:

	import java.util.Scanner;
	public class Demo7 {
	// switch练习
	// 输入1, 计算矩形面积和周长,长和宽由用户输入
	//输入2,计算圆的面积和周长,半价由用户输入
	//输入其他 ,错误提示

	public static void main(String[] args) {
	Scanner sc=new Scanner(System.in);
	System.out.println("清输入要选择的图形(1 矩形 2圆):");
	int opt=sc.nextInt();
	switch(opt){
	case 1:
	System.out.println("请输入矩形的长");
	int length =sc.nextInt();
	System.out.println("请输入矩形的款:");
	int width=sc.nextInt();
	int area=length*width;
	System.out.println("矩形的面积:"+area);
	int perimeter=2*(length+width);
	System.out.println("矩形的周长:"+perimeter);
	break;
	case 2:
	System.out.println("请输入圆的半径:");
	int r = sc.nextInt();
	double PI=3.14;  //π
	double area2 = PI*r*r;
	System.out.println("圆的半径:"+area2);
	double permeter2=2*PI*r;
	System.out.println("圆的周长:"+permeter2);
	break;
	default :
	System.out.println("输入错误");
	}
	}
	}

5// 分别求出1-100的奇数和偶数和 while 方法。

	int a = 1; // 偶数
		int sum = 0;
		int b = 0;// 奇数
		int sum1 = 0;
		while (a <= 100) {
			a++;
			if (a % 2 == 0) {
				sum = a + sum; // 偶数的和	
			}
		}
		System.out.println("偶数的和:"+sum);
		while (b <=100) {
			b++;
			if (b % 2 == 1) {
				sum1 = sum1 + b; // 奇数的和
			}
		}
		System.out.println("奇数的和:"+sum1 );
	}
}

6// 分别求出1-100之间的奇数和,偶数和,总和为多少。

	public static void main(String[] args){
	int sum=0,sum1=0;
	for(int a=1;a<=100;a++){
		if(a%2==0){
	    sum=sum+a;        //偶数和
		}else{
			sum1=sum1+a;  // 奇数和
	}		
}
	System.out.println("偶数和为:"+sum);
	System.out.println("奇数和为:"+sum1);
	System.out.print("奇偶数总为:");
	System.out.println(sum+sum1);
}}

7//从控制台输入任意一个整数,求出该整数的所有约数:全代码

	package day1;  //名称
	import java.util.Scanner;
	public class Demo9 {  // 名称
	public static void main(String[] args){
	Scanner scan=new Scanner(System.in);
	//从控制台输入任意一个整数,求出该整数的所有约数,即可以整除该整数的数值
	//(如:10可以被1,2,5,10整除,这些数是10的约数),并逐一在控制台输出。
	//1.创建Scanner对象
	//2.定义一个变量n,用来接收用户输入的整数
	//3.求出1-n之间的每一个整数
	//4.对1-n之间的每一个整数,进行筛选(n%i==0)  i就是约数
	System.out.println("请输入一个整数:");
	int n=scan.nextInt();
	int a=0;
	while (a<=n){
		a++;		
		if(n%a==0){
		System.out.println("余数:"+a);
	}
}
	}}

8//输出1-100的整数

public static void main(String[] args){
	for(int a=1;a<=100;a++){
	System.out.println(a);
	}}}

//倒着输出1-100的整数
	public static void main(String[] args){
	for (int a=100;a>=1;a--){
	System.out.println(a);
}}
}

9// 求出公园1000-2015年之间的所有闰年 和非闰年

//闰年:改年份能被4整除并且不能被 100整除,或者能被400整除
//闰年条件 (i%4==0&&i%100!=0)||i%400==0
	public static void main(String[] args){
	for(int i=1000;i<=2015;i++){
		if((i%4==0&&i%100!=0)||i%400==0){
			System.out.println("闰年:"+i);
		}else{
			System.out.println("不是闰年:"+i);
		}
	}
}}

10//从控制台输入任意一个整数n,求出该整数n之间的所有奇数

	public static void main(String[] args){
		Scanner scan=new Scanner(System.in);
		System.out.println("请输入一个整数");	
		int num=scan.nextInt();	
		System.out.println("奇数有:");
		for(int a=1;a<=num;a++){	// 求出num的总数	
		if(a%2!=0){	  // 奇数条件
		System.out.println(a);
	}
}
}}

11//用户输入一个整数num,判断num以内值的奇偶数。

public static void main(String[] args){
		Scanner scan=new Scanner(System.in);
		System.out.println("请输入一个整数");
		int num=scan.nextInt();
		for(int i=1;i<=num;i++){
		if(i%2!=0){
			System.out.println("奇数:"+i);
		}else{
			System.out.println("偶数:"+i);
		}
		// System.out.println("奇数:"+i);
		
			
		}
	
	}
}

12//求出100-999以内所有满足“水仙花数”的整数

//注:水仙花数,所谓“水仙花数”是指一个三位数,
//例如:153是一个”水仙花数“因为	
//153=1的三次方+5的三次方+3的三次方。
	public static void main(String[] srgs){
	int a,b,c;
	for(int i=100;i<=999;i++){
	//对每一个整数,求出百位数,十位数,个位数
	a=i/100;
	b=i/10%10;
	c=i%10;
	//判断是否符合水仙花数
	if(i==a*a*a+b*b*b+c*c*c){
	System.out.println("水仙花数:"+i);

	}
}
}}

13//求出1+1/2+1/3+1/4+…+1/100的值

public static void main(String[] args){
	double num=0;  // 求和定义值
	for(double i=1;i<=100;i++){  //定义分母值
		num=num+1.0/i;   //求和   1/2是double,double是浮点数所以1.0
	
   System.out.println(num);
	}
	System.out.println("和为:"+num);
}
}

14//计算出1+1/3+1/5+…+1/99的和

	public static void main(String[] args){
		//分析; 1-99都是分母的奇数相加
		//定义一个数,筛选出奇数 当做分母,
		// 求和 sum=sum+1.0/a;
		double sum=0;
		for(double a=1;a<=99;a++){  //定义分母 然后筛选出奇数
			if(a%2!=0){
			sum=sum+1.0/a;	
				System.out.println(sum);
			}
		}
		System.out.println("和为:"+sum);
	}
}

15//求两个整数的最大公约数,由用户输入2个正整数,求出这两个整数的最大公约数 并输出;

/* 注;公约数: 若果一个数c既是数a的约数,又是数b的约数,那么c叫做a与b的公约数。
最大公约数:两个数的公约数中最大的一个,叫做这两个数的最大公约数。
例如;求30与24的最大公约数
30的约数有;1.2.3.5.6.10.15.30
24的约数有;1.2.3.4.6.8.12.24
其中约数中最大的一个是6,所以30和24的最大公约数是6
*/
//分析;
	//1 创建Scanner对象
	Scanner scan=new Scanner(System.in);
	//2 定义两个变量num1和num2,用来接收用户输入的整数
	System.out.println("请输入第一个整数");
	int num1=scan.nextInt();
	System.out.println("请输入第二个整数");
	int num2=scan.nextInt();
	//3 求出其中较小的整数的值 min ,比如 12,36,  12就是12和36中最大的公约数,最大公约数在1-min之间
        int min=num1<=num2 ? num1:num2;
	//4 编写for循环,控制循环次数的变量i,i的取值范围1-min
         int result=0;  //定义一个数 使 i++ 不无限循环下去。
        for(int i=1;i<=min;i++){
       //5 求出num1和num2之间所有的公约数
    	if(num1%i==0&&num2%i==0){
    		result=i;
    		//6 输出最大的公约数
    	
    	}
    }
	System.out.println(num1+","+num2+"的最大公约数是:"+result);
}
}

16// 求出10000-90000之间所有的回文数。

    // 注:回文数,个位与万位相同,十位于千位相同,比如 12321
	public static void main(String[] args){
	// 分析:
			// 1 定义变量num1(万位数),num2(千位数),
	//                  num3(十位数),num4(个位数);
	int num1,num2,num3,num4;
   //2 求出10000-90000之间每一个整数
  	for(int i=10000;i<=90000;i++){
	// 3 求出一个整数的万位数,千位数,十位数,个位数
	num1=i/10000; //(万位)
	num4=i%10;  //(个位)
	num2=i%10000/1000;  //(千位)
	num3=i%100/10;  //(十位)
	// 4 求出回文数
	if(num1==num4 && num2==num3){
		System.out.println("回文数:"+i);
	}
}
}
}

17//思考题: 千位 十位 百位 个位 取值 为什么这么写

	public static void main(String[] args){
	int i=12345;
	int c=i/10000;  //(万位数)
 	   int d=i%10;    //(个位)
	    int e=i%10000/1000;  //(千位)12345%10000=2345;12345/1000=1; 取整,小数点后面的直接省略。
	    int f=i%100/10;  //  (十位)12345%100=45;45/10=4;//小数点后面直接省略
	    int g=i%1000/100;
	    System.out.println("万位数"+c);//1
	    System.out.println("个位"+d);//5
	    System.out.println("千位"+e);//2
	    System.out.println("百位"+g);//3
	    System.out.println("十位"+f);//4
}
}

18//求出程序有效精准度范围内(1000000000)的圆周率π的值,并在界面上输出

//注:圆周率π的计算公式为:π/4=1-1/3+1/5-1/7+1/9-1/11......
//规律:分子都是1,分母都是奇数,奇数项是正数,偶数项是负数
	public static void main(String[] args){
	int flag=-1;   //数学技巧,使得结果1正1负进行
	double sum=0;
       //分析:
      //1 求出1-1000000000中所有的整数
	for(int i=1;i<=1000000000;i++){
    //2 从1-10000000000过滤所有的奇数,作为分母
	if(i%2!=0){
    //3 求出每一个分数
	double num=1.0/i;   //1.0/i,i会自动类型转换,有int类型自动的转换为double类型,
    //1.0/i的结果也是double类型
    //4 奇数项为正数,偶数项为负数。
	flag= flag*(-1);
    //5 累加求和:sum=sum+分数
	sum=sum+num*flag;
}}
    //6 求出圆周率π的值
	double pi= sum*4;   //pi代表π
	System.out.println("圆周率π是:"+pi);
	}}

20 //1 break练习;计算从r=1到r等于10的圆面积,知道面积大于100为止

  public static void main(String[] args){
	double area;
	double pi=3.14;
	for( int r=1;r<=10;r++){
     //圆面积: π*r*r
	area=pi*r*r;
	if(area>=100){   //结束条件
	break;
}
	System.out.println("圆面积:"+area);
}
}

21 // 2.continue练习;输出1-30之间小于11并且大于19的数

public static void main(String[] args){
	for(int a=1;a<=30;a++){
		if(a>10&&a<20){
			continue;
		}
		System.out.println(a);
	}
}
}

22 //让用户输入一个整数,输出小于等于这个数 的所有奇数
// 需定义一个Scanner;

 public static void main(String[] args){
    	System.out.println("请输入一个整数");
    	Scanner scan = new Scanner(System.in);
    	int num = scan.nextInt();
    	int sum = 0;
    	int sum1 = 0;
    	while(num<0){
     System.out.println("重新输入");   			
    	num = scan.nextInt(); 
    	}
    	for(int i=0;i<=num;i++){
		if(i%2==0){		
				continue;
		}	
		sum+=i;
		System.out.println("奇数:"+i);			
		       }   	
    	System.out.println("奇数和:"+sum);
    }  
}


23 //判断用户输入的一个整数是否为质数(质数是指只有1和它本身两个约数的数)
//思路:要判断整数num,让num除以2-num-1之间的的每一个整数,如果num能
// 被整除,num就不是质数,反之num不能被整除,num就是质数
//方法一:

public static void main(String[] args){
		Scanner scan=new Scanner(System.in);
		System.out.println("请输入一个整数");
		int num=scan.nextInt();
		for(int i=2;i<=num-1;i++){
	    if(num%i==0){     
	    	System.out.println(num+"不是质数");
	    	break;   // 不是质数,直接跳转
	    }else{
	    	System.out.println(num+"是质数");
	    	break; // 是质数  直接跳转
	    }
		}
	}
	
}

24//判断用户输入的一个整数是否为质数(质数是指只有1和它本身两个约数的数)
//方法二:

	public static void main(String[] args){
	Scanner scan=new Scanner(System.in);
	System.out.println("请输入一个整数");
	int num=scan.nextInt();
	//定义一个flag,如果flag为true,num就是质数,反之
	//如果flag为false,num就不是质数
	boolean flag=true;  //默认num是质数
	for(int i=2;i<=num-1;i++){  //i定义为2~num-1之间的的每一个整数
            if(num%i==0){    //num除以num之间的每一个整数i,num能被整除则
    	flag=false;  // 将flag定义为 false 退出for循环
    	break;
    }  	
    }
	if(flag){
	System.out.println(num+"是质数");
      }else{
    	System.out.println(num+"不是质数");
    }
	}
}

25 //猜数字游戏。 用户录入一个大于1的正整数,然后有系统随机抽取一个从1到此证书范围内

//的数值作为需要猜测的数字,然后提示用户猜测此数值。用户录入某数值后,
//系统判断您是否猜测正确:如果录入的数值比答案数值大,则输出“大了”。
//并提示用户继续猜:如果录入的数值比答案数值小,则输出“小了;。
//并提示用户继续猜,知道录入的数值等于答案,则输出所猜中的数字,并结束游戏。

	import java.util.Scanner;
	import java.util.Random;  //定义随机数
	public class Demo11 {  // 标题 class类
	public static void main(String[] args){
	Scanner scan=new Scanner(System.in);
	//1定义一个变量max,接受从控制台输入最大的取值范围
	System.out.println("请输入所猜数字的上限:");
	int max=scan.nextInt();
	//2输出随机数的范围
	System.out.println("所要猜测的数字范围1~"+max);	
	//3求出随机数   Random 	
	Random random=new Random();
	int result=random.nextInt(max+1);  //在1~max之间
        //4定义变量count,保存猜测的次数(count=0)
	int count=0;
      //5编写while死循环
	 while(true){
       //6统计count的值,猜数字的次数
	 count++;
	 System.out.println("第"+count+"次猜测");
	 int number=scan.nextInt();
      //7猜对了,输出猜数字的次数 以及数字, 退出循环
	 if(number==result){
	 System.out.println("猜对了,结果为"+result+"一共猜测"+
            count+"次");
	 break;
 }
	//8猜错了,继续循环,大了还是小了
	 if(number>result){
	 System.out.println(number+"大了");
	 continue;
 }
	 if(number<result){
	 System.out.println(number+"小了");
	 continue;
 }
}
}
}
   //猜数字游戏
      public static void main(String[] args) {
		Scanner scan =new Scanner(System.in);
		int result = (int)(Math.random()*100+1);
		System.out.println("答案"+result);
		System.out.println("猜吧!");
		int num = scan.nextInt();
	  int times = 1;
	  int timess = 1;
	 while(result!=num){
		 times++;	
		 if(num==-1){
			 break;
		 }
		 if(num>result){
			 System.out.println("猜大了,重新猜");
		 }else{
			 System.out.println("猜小了,重新猜");
		 }
		 System.out.println("第"+times+"次猜测");
		 num = scan.nextInt();
		 timess++;
	 }
	 if(result==num){
		 System.out.println("恭喜你,猜对了。"+"共猜测了"+timess+"次");
	 }else {
		 System.out.println("下次再来吧");
	 }
		}
		
		
			 	}  


26 // 求出1~100之间所有整数的和
public static void main(String[] args){
int sum=0;
for(int a=1;a<=100;a++){
sum=sum+a;
}
System.out.println(“总和为:”+sum);
}
}

27 //求出1~1000之间所有奇数的和;

	public static void main(String[] args){
	int sum=0;
	for(int a=1;a<=1000;a++){
		if(a%2!=0){
			System.out.println("奇数为:"+a);
			sum=sum+a;		
		}
	}		System.out.println("奇数和为:"+sum);
}
}

28 //求出1~10的阶乘 .1234…*20;

public static void main(String[] args){
		double sum=1;
		for (double a=1;a<=10;a++){	
			System.out.println(a);
			sum=sum*a;
			System.out.println(sum);
		}
	}
			
}

29 //使用do-while语句输出 1-100之间的所有整数

	public static void main(String[] args){
		int a=1;
		do{
			System.out.println(a);
			a++;
		} 
		 while (a<=100);		
	}
}

30 // 输入一个数,判断该值的等级

// 输入num<100或num<0;即输入错误 重新输入
	public static void main(String[] args){
		Scanner scan=new Scanner(System.in);
		System.out.println("请输入分数");
		int num=scan.nextInt();
		do {if(num>100||num<0){
		System.out.println("输入错误");
		
		System.out.println("继续输入");
		num=scan.nextInt();
			
		}}while(num>100||num<0);		
		if(num>90&num<=100){
			System.out.println(num+"A级");
		
		}if(num>=80&&num<90){
			System.out.println(num+"B级");
		}
		 if(num>=70&num<80){
			System.out.println(num+"C级");
		}
		 if(num>=60&num<70){
			System.out.println(num+"D级");
		}
			if(num<60&num>=0){
			System.out.println(num+"不及格");
		}
		
	}
	}

31 // 用户输入1000-2018之间的年份,判断该年份为闰年还是非闰年
//当年份不在1000-2018之间,输入错误,并重新输入

public class Demo2 {
	public static void main(String[] args) {
		Scanner scan=new Scanner(System.in);
		System.out.println("请输入年份(1000-2018)");		
		int year=scan.nextInt();
		do{if(year>2018||year<1000){
			System.out.println("输入错误");
			System.out.println("重新输入");
			year=scan.nextInt();
		}}while (year>2018||year<1000);
		if((year%4==0&&year%100!=0)||year%400==0){
			System.out.println("闰年:"+year);
		}else{
			System.out.println("非闰年"+year);
		}

	}

}

32//数组的表达方式

  //数据类型[] 数组名 = new 数据类型[大小];
	public static void main(String[] args){
	//数组的两种表达式
	int[] num={1,2,55,1,555,55,8,98};

	/*int[] num=new int[5];
	 * 	num[0]=1;
	num[1]=3;
	num[2]=24;
	num[3]=11;
	num[4]=12;
*/
	System.out.println("cd"+num.length); //.length长度
	for(int i=0;i<num.length;i++){ 
		System.out.println(num[i]);//提取num中的值
	}}}

33//用户输入三个数,输出该数的最大值和最小值

public static void main(String[] args) {
	Scanner scan=new Scanner(System.in);
	System.out.println("请输入第一个数");
	int num1=scan.nextInt();
	System.out.println("请输入第二个数");
	int num2=scan.nextInt();
	System.out.println("请输入第三个数");
	int num3=scan.nextInt();
	if(num1>=num2&&num1>=num3){
	System.out.println("最大值:"+num1);
	}
	if(num2>=num1&&num2>=num3){
		System.out.println("最大值:"+num2);
	}
	if(num3>=num1&&num3>=num2){
	System.out.println("最大值:"+num3);
	}
	if(num1<=num2&&num1<=num3){
	System.out.println("最小值:"+num1);
	}
	if(num2<=num3&&num2<=num1){
	System.out.println("最小值"+num2);
	}
	if(num3<=num1&&num3<=num2){
	System.out.println("最小值:"+num3);
	}}}

34//提取数组中的值

  int[] a = {1,5,1,465,1,3,47,465,31,12,22};
	  for (int i = 0; i <= a.length; i++) {   //提取数组全部定义
	System.out.println(a[i]);  //输出 
	  System.out.println(a[1]);  //提取单个值,下标默认从[0]开始

35// 随机生成字母,判断它们是元音字母还是辅音字母
	public static void main(String[] args){
		for(int i = 0;i < 5; i++){   // 定义随机字母数量
			char c =(char)(Math.random() * 26 +'a'); //随机产生一个字母
			switch(c){
			case 'a':
			case 'e':
			case 'i':
			case 'o':
			case 'u':
				System.out.println(c+":元音字母");
				break;
			case 'y':
			case 'w':
				System.out.println(c+":辅音字母");
				break;
				default:
					System.out.println(c+":两个都不是");
				
}}}}

36// 编写程序判断某一个年份是否为闰年(使用if-else)

             public static void main(String[] args){
	//本案例需要使用交互的方式判断某年是否为闰年:用户从控制台输入需要判断的年份值,
             //       由程序使用if-else判断该年是否为闰年,并将判断结果输出到控制台
           //1. 定义 Scanner;
 	Scanner scan = new Scanner(System.in);
           //2.接收用户输入的年份 year;
	System.out.println("请输入年份(如2012):");
	int year = scan.nextInt();	
           //3.用if-else 判断该年份是否为 闰年 并输出   闰年条件:(*%4==0&&*%100!=0)||*%400==0;
	if((year%4==0&&year%100!=0)||year%400==0){
		System.out.println(year+"是闰年");
	}else{
		System.out.println(year+"不是闰年");
	}	
}}

37//用户从控制台接收两个整数,通过程序找出两个数中的最大值

	public static void main(String[] args) {
	//1.定义Scanner并接收用户输入
		Scanner scan = new Scanner(System.in);
	System.out.println("请依次输入两个整数:a,b (以空格隔开)");
	int a = scan.nextInt();
	int b = scan.nextInt();
	//2. 用三目运算符 定义最大值并输出
	int max = a>b ? a:b;
	System.out.println(max);
	}}

38// 三个三目运算符 定义

  //    int max=(a>b?a:b)>c ? (a>b?a:b):c;

//	输出三个int数中的最大值(提高题,选做)
               public static void main(String[] args){
	//用户从控制台接收三个整数,通过程序找出三个数中的最大值
	// 1.定义scanner;
	Scanner scan = new Scanner(System.in);
	//2. num1,num2,num3用于接收用户输入的三个数.并输出用户输入的三个数分别为多少
	System.out.println("请以此输入三个数并以空格隔开");
	int num1 = scan.nextInt();
	int num2 = scan.nextInt();
	int num3 = scan.nextInt();
	System.out.println("你输入的数分别为"+num1+","+num2+","+num3);
	//3.用if语句 判断 大小并以此输出(num1>num2&&num1>num3)..System.out.println(num1+"最大值");
	if(num1>num2 && num1>num3){
		System.out.println("最大值为:"+num1);
	}else if(num2>num3 && num2 >num1){
		System.out.println("最大值为:"+num2);	
	}else if(num3>num1 && num3>num2){
		System.out.println("最大值为:"+num3);
	}

39//switch语句写出 1.显示全部记录,2.查询登陆记录,3.欢迎下次再来。其他输出错误

	public static void main(String[] args){
               Scanner scan = new Scanner(System.in);
              System.out.println("请输入:1.显示全部记录 2.查询登陆记录 3.欢迎下次再来");
              int command = scan.nextInt();
              switch (command){
              case 1:
	System.out.println("显示全部记录");
	break;
              case 2:
	System.out.println("查询登陆记录");
                  break;
              case 3:
	System.out.println("欢迎下次再来");
                break;
                default:
	  System.out.println("输入错误");
}}}

40//if语句表达

             public static void main(String[] args){
               Scanner scan = new Scanner(System.in);
              System.out.println("请输入:1.显示全部记录 2.查询登陆记录 3.欢迎下次再来");
              int command = scan.nextInt();
              if(command==1){
	System.out.println("显示全部记录");
              }else if(command==2){
	System.out.println("查询登陆信息");
              }else if(command==3){
	System.out.println("欢迎下次再来");
              }else{
	System.out.println("输入错误");
              }}}


41//编写三个数值的排序程

   import java.util.Scanner;
             public class Console1 {
              public static void main(String[] args){
	 // 使用程序为用户所录入的 3 个数值进行升序排列,并将排序后的结果输出到控制台
	 //1.定义Scanner;  
              Scanner scan = new Scanner(System.in);
	 //2. abc分别接收用户输入的三位数
              System.out.println("请依次输入三个整数a b c: 用空格隔开");
              int a = scan.nextInt();
              int b = scan.nextInt();
              int c = scan.nextInt();

42 // 3.输出 用户输入的数

             System.out.println("你输入的数为"+"a="+a+","+"b="+b+","+"c="+c);
	 //4.升序排列,并输出
              int t = 0;
              if(a>b){     //a>b 则a换位置,满足a
	 t=a;a=b;b=t;} 
              if(a>c){  //a>c  则a换位置,满足a
	 t=a;a=c;c=t;} 
 
 
              if(b>c){   //b>c  则b换位置,满足 b
	 t=b;b=c;c=t;
              }
              System.out.print("升序排列后,结果为:"+"a="+a+" ");	 
              System.out.print("b="+b+" ");
              System.out.println("c="+c);
 }}

43// 输出 行动是成功的阶梯10次,以及1-9*9的值

      int num = 1;
         while(num<=10){
	System.out.println("行动是成功的阶梯"+num);
	num++;
         }	
         int a = 1;
         while(a<=9){
	System.out.println("正序"+a+"*9="+a*9);
	a++;
}
	int b = 9;
	while (b>=1){
		System.out.println("倒序"+b+"*9="+b*9);
		b--;
	}
	int c = 1;
	while (c<=9){
		System.out.println("奇数"+c+"*9="+c*9);
		c+=2;
	}	}}

44//猜数字


          public static void main(String[] args) {	
                 Scanner scan = new Scanner(System.in);
	 int num = 250; // 需要猜的值
	System.out.println("猜吧");
	int guess = scan.nextInt();
	while(guess!=num){
		// 输入0  提前退出
		if(guess==0){
			break;
		}
		// 猜大了或猜小了 提示。
		if(guess>num){
			System.out.println("猜大了,重新猜");
		}else{
			System.out.println("猜小了,重新猜");
		}
		guess = scan.nextInt();	
		
		}
	//结束语句,才对了,输出 恭喜你,输入0结束,输出,下次再来
	if(guess==num){
		System.out.println("恭喜你,猜对了");
	}else{
		System.out.println("下次再来吧");
	}
	}}


45//猜数字版本2

public static void main(String[] args){
	/*
	 * 猜吧!造一个隐藏数, while循环,猜大了,猜小了, 输入-1结束
	 * 总分500,猜错一次减10分,最多猜,第51次结束循环。
	 * 纪录次数,
	 */
	Scanner scan = new Scanner(System.in);
	System.out.println("猜吧(满分500,猜错一次减10分,最多能猜50次)");
	int result = scan.nextInt();
	int num = (int)(Math.random()*100+1);//随机生成1-100之间的随机数
//	System.out.println(num);//需要猜测的答案
	int score = 500; //初始分数
	int time = 0;//次数
	while(result!=num){
		if(result==-1){ //输入-1结束
			break;
		}
		if(time>=50){//最多猜50次
			break;
		}
		time++; //纪录次数
		score-=10;//猜错扣除分数
		if(result>num){
			System.out.println("大了,重新猜");
		}else{
			System.out.println("小了,重新猜");
		
		}
		result = scan.nextInt();
	}
	
		if(result==num){
			System.out.println("恭喜你,猜对了");
		}else{ //当result!=num时,说明是输入-1或者次数到了,则输出下次再来吧
			System.out.println("下次再来吧!");
		}
	System.out.println("猜测次数为"+time+"最终分数为"+score);
}
}

46// 猜数字2

    if{
        }while();   语句
	public static void main(String[] args) {
	Scanner scan = new Scanner(System.in);
	 int num = (int)(Math.random()*1000+1); // 需要猜的值
      System.out.println(num); //外挂,(显示随机数值的答案)
	int a= 0; // 定义空值,记录猜测次数
	int guess=0; //给guess定义空值,不然第一次猜对报错。
	do{		
	    System.out.println("猜吧");
			 guess = scan.nextInt();
		if(guess==0){   // 输入0.结束语句
			break;
		}
		if(guess>num){
			System.out.println("猜大了,重新猜");
		}else if(guess<num){   // do while  必须 else if (条件) 否则程序不正常运行


			System.out.println("猜小了,重新猜");
		}		
		a++;	// 猜一次 记录一次
	}while(guess!=num);

	if(guess==num){        // 定义 猜对了输出猜对了, else就是 输入0结束 输出 下次再来
		System.out.println("恭喜你,猜对了");
	}else{
		System.out.println("下次再来吧!");
	}	System.out.println("猜的次数为:"+a);
	}}

47//猜数字 do{}while(); 语句 另一种写法

 public static void main(String[] args){
	/* 分析:
	 *  1.定义一个random,a产生一个1~1000的随机值。int a=(int)(Math.random *1000+1); 
                * +1是因为把让int0变为1,random初始是0-0.999. 需强转
	 *  2.定义Scanner,num 用于接收 用户  猜的值
	 *  3.定义dowhile,猜的值大了,小了 都请重新输入,输入0结束
	 *  4.定义一个b=1; 用于记录猜测的次数
	 *  5.定义一个if语句,猜对了输出恭喜。 输入0结束的, 输出下次再来吧!
	 */ 
	Scanner scan = new Scanner(System.in); 
		 int a=(int)(Math.random()*1000+1);
		 System.out.println(a);// 外挂,显示随机数
		 System.out.println("猜吧");
		 int num = scan.nextInt();
		 int b = 1;
		 do{
			 if(num==a){
				 break;
			 }
			 if(num==0){
				 break;
			 }
			 if(num>a){
				 System.out.println("猜大了,重新猜");
			 }else {
				 System.out.println("猜小了,重新猜");
			 }
			
			 num = scan.nextInt();
			 b++;
		 }while(num!=a);
		 System.out.println("一共猜了"+b+"次");
		 if(num==a){
			 System.out.println("恭喜你,猜对了");
		 }else{
			 System.out.println("下次再来吧!");
		 } }}

48//输入年份和月份,输出该月的天数(使用switch-case)

public static void main(String[] args) {
		// 一年有 12 个月,而每个月的天数是不一样的。其中,有7个月为 31 天,称为大月,分别为1、3、5、7、8、10、12月;有 4个月为
		// 30 天,
		// 称为小月,分别为4、6、9、11月;还有二月比较特殊,平年的二月只有28天,而闰年的二月有 29 天。
		// 本案例需要使用交互的方式计算某年某月的天数:由用户在控制台输入年份和月份值,程序计算该年该月的天数,并将结果输出在控制台。
		// 1.定义Scanner。接收年份和月份并输出
		Scanner scan = new Scanner(System.in);
		System.out.println("请输入年份:");
		int year = scan.nextInt();
		System.out.println("请输入月份:");
		int month = scan.nextInt();
		// 2.定义 num 用switch接收月份 并分别输出大月和小月的年份;
		// 3.判断2月是否为闰年,闰年 条件 (year%4==100 && year%100!=0)||year%400==0;
		int num = month;
		switch (num) {
		case 1:
			System.out.println(year + "年" + month + "月有" + 31 + "天");
			break;
		case 2:
			if ((year % 4 == 100 && year % 100 != 0) || year % 400 == 0) {
				System.out.println(year + "年" + month + "月有" + 29 + "天");
			} else {
				System.out.println(year + "年" + month + "月有" + 28 + "天");
			}
			break;
		case 3:
			System.out.println(year + "年" + month + "月有" + 31 + "天");
			break;
		case 4:
			System.out.println(year + "年" + month + "月有" + 30 + "天");
			break;
		case 5:
			System.out.println(year + "年" + month + "月有" + 31 + "天");
			break;
		case 6:
			System.out.println(year + "年" + month + "月有" + 30 + "天");
			break;
		case 7:
			System.out.println(year + "年" + month + "月有" + 31 + "天");
			break;
		case 8:
			System.out.println(year + "年" + month + "月有" + 31 + "天");
			break;
		case 9:
			System.out.println(year + "年" + month + "月有" + 30 + "天");
			break;
		case 10:
			System.out.println(year + "年" + month + "月有" + 31 + "天");
			break;
		case 11:
			System.out.println(year + "年" + month + "月有" + 30 + "天");
			break;
		case 12:
			System.out.println(year + "年" + month + "月有" + 31 + "天");
			break;
		}}}


49//个人所得税计算程序 并输出税后工资

	public class Console {
	// 应纳税额=(工资薪金所得-扣除数)×适用税率-速算扣除数。其中,扣除数为3500元,适用税率以及速算扣除数如下表所示。
	/*
	 * 全月应纳税所得额 税率 扣除数 全月应纳税额不超过1500元 3% 0 全月应纳税额超过1500元至4500元 10% 105
	 * 全月应纳税额超过4500元至9000元 20% 555 全月应纳税额超过9000元至35000元 25% 1005
	 * 全月应纳税额超过35000元至55000元 30% 2755 全月应纳税额超过55000元至80000元 35% 5505
	 * 全月应纳税额超过80000元 45% 13505
	 */
	// 上表中的全月应纳税所得额=工资薪金所得-扣除数。
	// 本案例要求计算个人所得税的缴纳额度:用户从控制台输入税前工资的金额,程序计算所需要交纳的个人所得税的金额,并将计算结果输出到控制台。
	// 1.定义Scanner,并接收用户输入薪资salary。
	   public static void main(String[] args){
	Scanner scan = new Scanner(System.in);
	 System.out.println("请输入税前工资");
	  double salary = scan.nextDouble();
	  double a = 3500;
	  double num = salary-a;
	  if(num<1500){
	  double b = (num*0.03-0);
	  System.out.println("应纳税为:"+b);
	  }else if(num>=1500 && num<=4500){
	  double b = (num*0.1-105);
	  System.out.println("应纳税为:"+b);
	  }else if(num>=4500 && num<=9000){
	  double b = (num*0.2-555);
	  System.out.println("应纳税为:"+b);
	  System.out.println("税后工资为:"+(salary-b));
	  } if (num >= 9000 && num <= 35000) {
		double b = (num * 0.25 - 1005);
		System.out.println("应交个人所得税为:" + b);
		System.out.println("税后工资为:" + (salary - b));
	}
	if (num >= 35000 && num <= 55000) {
		double b = (num * 0.3 - 2755);
		System.out.println("应交个人所得税为:" + b);
		System.out.println("税后工资为:" + (salary - b));
	}
	if (num >= 55000 && num <= 80000) {
		double b =  (num * 0.35 - 5505);
		System.out.println("应交个人所得税为:" + b);
		System.out.println("税后工资为:" + (salary - b));
	}
	if (num >= 80000) {
		double b =  (num * 0.45 - 13505);
		System.out.println("应交个人所得税为:" + b);
		System.out.println("税后工资为:" + (salary - b));   
   }
}}

50//成绩等级判断

     public static void main(String[] args){
	Scanner scan = new Scanner(System.in);
	/*
	 * 1.定义Scanner,接收用户输入的成绩
	 * 2.if语句判断,分数等级。  输入<0或>100提示输入错误,并重新输入
	 *   重新接收用户输入需要使用while语句
	 */
	System.out.println("请输入成绩");
	double score = scan.nextDouble();
	while(score<0 || score>100){
		System.out.println("输入错误,请重新输入");
		score = scan.nextDouble();
	}
	if(score>=90){
		System.out.println(score+"A-优秀");
	}else if(score>=80 && score<90){
		System.out.println(score+"B-良好");
	}else if(score>=60 && score<80){
		System.out.println(score+"C-及格");
	}else if(score<60){
		System.out.println(score+"D-不及格");
	}	}}

51//命令解析程序 switch case 语句

                public static void main(String[] args){
	/*
	 * 1.定义Scanner,提示用户输入并,接收用户输入指令
	 * 2.若输入与提示不符,输入错误,请重新输入 输入0结束
	 * 3.定义switch case 内容  并输出用户输入的指令内容
	 * 4.在每个case后面加上break; 否则会全部输出
	 */
	Scanner scan = new Scanner(System.in);
	System.out.println("请输入指令,1.呼叫张 2.呼叫崔 3.呼叫杨 4.呼叫王");
	int command = scan.nextInt();
	while(command<0 || command>4){
		System.out.println("输入错误,请重新输入,输入0结束");
		if(command==0){
			break;
		}
		command = scan.nextInt();
	}
	if(command==0){
		System.out.println("下次再来吧!");
	}
	switch(command){
	case 1:
		System.out.println("张:您好");
		break;
	case 2:
		System.out.println("崔:您好");
		break;
	case 3:
		System.out.println("杨:您好");
		break;
	case 4:
		System.out.println("王:您好");
		break;
	}}}

52//编写三个数值的排序程

	public static void main(String[] args) {
		// 使用程序为用户所录入的 3 个数值进行升序排列,并将排序后的结果输出到控制台
		// 1.定义Scanner;
		Scanner scan = new Scanner(System.in);
		// 2. abc分别接收用户输入的三位数
		System.out.println("请依次输入三个整数a b c: 用空格隔开");
		int a = scan.nextInt();
		int b = scan.nextInt();
		int c = scan.nextInt();
		// 3.输出 用户输入的数
		System.out.println("你输入的数为" + "a=" + a + "," + "b=" + b + "," + "c=" + c);
		// 4.升序排列,并输出
		int t = 0;
		if (a > b) { // a>b 则a换位置,满足a
			t = a;
			a = b;
			b = t;
		}
		if (a > c) { // a>c 则a换位置,满足a
			t = a;
			a = c;
			c = t;
		}
		if (b > c) { // b>c 则b换位置,满足 b
			t = b;
			b = c;
			c = t;
		}
		System.out.print("升序排列后,结果为:" + "a=" + a + " ");
		System.out.print("b=" + b + " ");
		System.out.println("c=" + c);
	}
}

53//输入年份和月份,输出该月的天数(使用switch-case)

	// 一年有 12 个月,而每个月的天数是不一样的。其中,有7个月为 31 天,称为大月,分别为1、3、5、7、8、10、12月;有 4个月为
		// 30 天,
		// 称为小月,分别为4、6、9、11月;还有二月比较特殊,平年的二月只有28天,而闰年的二月有 29 天。
		// 本案例需要使用交互的方式计算某年某月的天数:由用户在控制台输入年份和月份值,程序计算该年该月的天数,并将结果输出在控制台。
		// 1.定义Scanner。接收年份和月份并输出
		Scanner scan = new Scanner(System.in);
		System.out.println("请输入年份:");
		int year = scan.nextInt();
		System.out.println("请输入月份:");
		int month = scan.nextInt(); 		
		switch(month){   
		case 2:
			if((year%4==0 && year%100!=0)||year%400==0){
				System.out.println(year+"年"+month+"月有"+28+"天");				
			}else{
				System.out.println(year+"年"+month+"月有"+29+"天");
			}
			break;
		case 1:
		case  3:
        case 5:
        case 7:
        case 8:
        case 10:
        case 12:	 
        	System.out.println(year+"年"+month+"月有"+31+"天"); 
        	break;
        case 4:
        case 6:
        case 9:
        case 11:
  System.out.println(year+"年"+month+"月有"+30+"天"); 
        	}
          }	}

54//求数组的最大值和最小值

          public static void main(String[] args){
	/*
	 * 1.定义数组长度为10并遍历数组
	 * 2.定义Math.random 0-99之间随机取值
	 * 3.计算 10个数组中的最大值 并输出
	 */
	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];
	int min = arr[0];
	for(int i = 1; i<arr.length;i++){
		if(arr[i]>max){
			max = arr[i];	
		}
             if(arr[i]<min){			
			min = arr[i];
		}
	}
              System.out.println("最小值为"+min);
	System.out.println("最大值为"+max);	
}}

55//99乘法表

for(int  a = 1; a<=9; a++){
		for(int b = 1;b<=a;b++){
			System.out.print(b+"*"+a+"=");
			System.out.print("	");		
		}
              System.out.println();

56// 随机加法运算器

        public static void main(String[] args){
	//1.出题。2.答题。3.判题. 输入-1退出
	/*
	 * 1.随机出2个0-99之间的数相加(Math.randam()*100),并提示输出a+b=?
	 * 2.定义一个num=10,为题目数量,定义一个score为分数
	 * 3.定义一个times,记录答对次数
	 * 5.定义Scanner接受用户输入的结果
	 * 6.输入-1结束
	 * 7.判断对错 对了得10分。错了 不得分,输出最终分数
	 */
	Scanner scan = new Scanner(System.in);
	int num ;
	int score = 0;
             int times = 0;
	for(num = 1; num<=10;num++){
		int a =(int)(Math.random()*100);
		int b =(int)(Math.random()*100);
	System.out.println("("+num+")"+a+"+"+b+"=?");
	int result = a+b;
	System.out.println("请输入结果");
	int c = scan.nextInt();
	if(c==-1){
		break;
	}
	if(c==result){
		score+=10;
		System.out.println("正确");
		times++;
	}else{
		System.out.println("错误");
	}
	}
	System.out.println("答对次数为"+times);
	System.out.println("得分为:"+score);
	
}}

57 //9,99,999,…,9999999999。要求使用程序计算此数列的和,并在控制台输出结果。

	public static void main(String[] args){
/*		long v =9999999999l;
		long sum=0;
		for(long a = 9l;a<=v;a=a*10+9l){
			sum = sum+a;				
		}
		System.out.println(sum);
	}
}*/
 //  方法二;
	long a = 0;
	long sum = 0;
	for(long b =1;b<=10;b++){
		a = a*10+9;
		sum = sum + a;
	}
	System.out.println("sum="+sum);
	}}

58//将数组元素最大值放在数组最后一个元素的下一个位置

	/*
	 * 1定义一组10个随机数
	 * 2求出最大值
	 * 3数组扩容
	 * 4把求出的最大值替代扩容后的数
	 */
	public static void main(String[] args){
		int[] arr=new int[10];
		System.out.print("10个随机数:");
		for(int i = 0;i<arr.length;i++){
			arr[i] = (int)(Math.random()*100);
			System.out.print(arr[i]+" ");
		}
		int max = arr[0];
		for(int i = 0;i<arr.length;i++){
			if(arr[i]>max){
				max=arr[i];
			}
		}
		System.out.println();
		System.out.println("最大值为:"+max);
		 arr = Arrays.copyOf(arr, arr.length+1);
		 System.out.print("扩容后为:");
		 for(int i = 0;i<arr.length;i++){
			 System.out.print(arr[i]+" ");
		 }
		 arr[arr.length-1]=max;
		 System.out.println();
		 System.out.print("最大值放最后为:");
		 for(int i = 0;i<arr.length;i++){
			System.out.print(arr[i]+" ");
		 }
	}
}

59//查询数组最小值,并将其放在第一位

	public static void main(String[] args){
		/*
		 * 1.定义数组arr[10]
		 * 2.随机生成10组数
		 * 3.定义一个min[0]并遍历数组求出最小值
		 * 4.扩容,扩容后放在第一,并把最小值代替为扩容后的值
		 */
		int[] arr=new int[10];
		System.out.println("随机生成10个数为:");
		for(int i = 0;i<arr.length;i++){
			arr[i] = (int)(Math.random()*100);
			System.out.print(arr[i]+" ");
		}
		System.out.println();
		System.out.print("最小值为:");
		int min=arr[0];
		for(int i = 0;i<arr.length;i++){
			if(arr[i]<min){
				min=arr[i];
			}
		}
		//int[] a1 = new int[6];
		//System.arraycopy(a,1, a1,0,5);
		System.out.println(min);	
		int[] a = new int[11];	
		a[0]=min;  //将最小值赋给扩容后的数
		System.arraycopy(arr,0,a,1,a.length-1);
		for(int i =0;i<a.length;i++){  
			System.out.print(a[i]+" ");
		}
		/*System.out.println("扩容:");
		for(int i = 0;i
		}
	}
  //方法2:
                           public static void main(String[] args){
 		int[] arr = new int[10];
		for(int i=0;i<arr.length;i++) {
			arr[i] = (int)(Math.random()*100);
			System.out.print(arr[i]+" ");
		}		
		int min = arr[0];
		for(int i=1;i<arr.length;i++) {
			if(arr[i]<min) {
				min = arr[i];
			}
		}
		System.out.println("最小值为:"+min);		
		int[] as = new int[arr.length+1];
		System.arraycopy(arr,0,as,1,arr.length);
		as[0] = min;
		for(int i=0;i<as.length;i++) {
			System.out.print(as[i]+" ");
		}
}
}

60//随机生成10组数,

//用冒泡排序输出
   int[] arr = new int[10];
   System.out.println("随机生成十组数为:");
   for(int i = 0;i<arr.length;i++){
	   arr[i]=(int)(Math.random()*100);
	   System.out.print(arr[i]+" ");
   }
   System.out.println();
	System.out.println("冒泡排序后为:");
	for(int i = 0;i<arr.length-1;i++){
		for(int j = 0;j<arr.length-1-i;j++){
		if(arr[j]>arr[j+1]){
		int t=arr[j+1];
		arr[j+1]=arr[j];
		arr[j]=t;		
		}	
		}		
		System.out.print(arr[i]+" ");	
		}
}}

61// 类的使用

     public static void main(String[] args){
	say();
	sayHi("ccx");
	sayHello("zfy",45);
	double a = getNum();
	System.out.println(a);
	int b = plus(5,6);
	System.out.println(b);
	int m=5,n=6;int c =plus(m,n);
	System.out.println(c);
	int e = plus(5,5);
	System.out.println(e);
}
         public static void say(){
 	System.out.println("Say:你好");
}
          public static void sayHi(String name){
	System.out.println("哈喽,我是"+name);
}
             public static void sayHello(String name,int age){
	System.out.println("你好,我是"+name+",并且今年"+age+"岁了");
}
             public static double getNum(){
	return 88.88;
}
             public static int plus(int num1,int num2){
	return num1+num2;
}}

62//求数列和 1+1/2+1/3…+1/n(n>=2)。

            public static void main(String[] args){
	/*
	 * 用户在控制台录入需要计算的整数 n 的值,程序计算此数列的和,并在控制台输出结果。
	 */
	Scanner scan = new Scanner(System.in);
            System.out.println("请输入一个分母:");
        double n = scan.nextDouble();
            double sum = 0;
            for(int b=1;b<=n;b++){
            if(n>=1){
	 sum = sum+ 1.0/b;
         }
        }
           System.out.println("sum="+sum);
}}

63//随机生成数组

public static void main(String[] args){
		//封装一个方法generateArray,该方法实现生成指定长度的int数组,该数组的元素                                    //为0到指定范围内的随机数,并将该数组返回。
		int[] c = generateArray(10,20); // 10为,长度。20为,随机数的范围
		System.out.println("随机生成的数组为:");
		for(int i =0;i<c.length;i++)
		System.out.print(c[i]+" ");
	}
            public static int[] generateArray(int a,int b){ 
	int[] arr = new int[a];  //a为长度
	for(int i = 0;i<a;i++){
		arr[i] = (int)(Math.random()*b);//b为随机取值范围
	}
	return arr;
}}

64///*1.创建Person类,包含:

    1)成员变量:name,age,address
     2)构造方法:Person(3个参数){}
     3)方法:sayHi(){输出3个数据}
   2.创建Student类,继承Person,包含:
     1)成员变量:stuId
     2)构造方法:Student(4个参数){}
   3.创建Teacher类,继承Person,包含:
      1)成员变量:salary
        2)构造方法:Teacher(4个参数){}
   4.创建Doctor类,继承Person,包含:
       1)成员变量:level
        2)构造方法:Doctor(4个参数){}
   5.创建Test类,main中:
      1)创建Student数组ss,填充数据,遍历问好
      2)创建Teacher数组ts,填充数据,遍历问好
      3)创建Doctor数组ds,填充数据,遍历问好*/
	public static void main(String[] args) {
		Student[] ss = new Student[3];
		ss[0] = new Student("崔崇鑫", 21, "开阳县", "16340416");
		ss[1] = new Student("张发阳", 21, "开阳县", "16340417");
		ss[2] = new Student("杨松", 22, "羊场", "12345678");
		for (int i = 0; i < ss.length; i++) {
			ss[i].sayHi();
		}
		Teacher[] ts = new Teacher[3];
		ts[0] = new Teacher("张三", 44, "浙江", 5500);
		ts[1] = new Teacher("李四", 35, "广东", 6000);
		ts[2] = new Teacher("王五", 28, "贵州", 4000);
		for (int i = 0; i < ss.length; i++) {
			ts[i].tr();
		}
		Doctor[] ds = new Doctor[3];
		ds[0] = new Doctor("赵六", 43, "黑龙江", "主刀医生");
		ds[1] = new Doctor("陈七", 57, "北京", "某院主任");
		ds[2] = new Doctor("农夫山泉", 58, "上海", "院长");
		for (int i = 0; i < ds.length; i++) {
			ds[i].dr();
		}	}}
class Person {
	String name;
	int age;
	String address;
	Person(String name, int age, String address) {
		this.name = name;
		this.age = age;
		this.address = address;
	}
	void sayHi() {
		System.out.println("你好,我叫" + name + ",今年" + age + "岁了,家住" + address);
	}}
class Student extends Person {
	String stuId;
	Student(String name, int age, String address, String stuId) {
		super(name, age, address);
		this.stuId = stuId;
	}}
class Teacher extends Person {
	double salary;//工资
	Teacher(String name, int age, String address, double salary) {
		super(name, age, address);
		this.salary = salary;
	}
	void tr() {
		System.out.println("我职业是教师,名叫" + name + "," + "今年" + age + "岁了,家住" + address + ",工资为:" + salary);
	}
}

class Doctor extends Person {
	String level;
	Doctor(String name, int age, String address, String level) {
		super(name, age, address);
		this.level = level;
	}
	void dr() {
		System.out.println("我职业是医生,名叫" + name + "," + "今年" + age + "岁了,家住" + address + ",任职:" + level);
	}}

65//数组的数组,使用方法

             int[][] arr= new int[3][];//[3]是数组长度,[]代表每一个数组中都长度
	arr[0] = new int[2]; //第一个数组的长度为2
	arr[1] = new int[3]; //第二个数组都长度为3
	arr[2] = new int[4];
	arr[1][2] = 100;  // 给第2个数组中第3个元素赋值为100
	System.out.println(arr[1][2]);//输出第二个数组中第三个
	int[][] arr1 = new int[3][4]; //一共有3个组数,每个数组都长度为4
	for(int i = 0;i<arr1.length;i++){ //遍历数组arr1中都元素[3]
		for(int j = 0;j<arr1[i].length;j++){//遍历数组arr1中每一个数组的长度,arr1[i]
			arr1[i][j] = 250; // 给每一个数组赋值为250
			System.out.println(arr1[i][j]);
		}


   //随机生成26个字母
	boolean[] ar = new boolean[26];//判断是否26以内,默认false输出
	int times = 0;
	  for(int i=0;i<10;i++ ){
		  times++;
		  int a;
		  do{
			a = (int)(Math.random()*26)+97; //生成一个ask马值。a=97,b=98			  
		  }while(ar[a-97]); //判断是否26以内
		  ar[a-97] = true;   //为true不输出,返回do while语句,false下一步
   char b = (char)a; //将a转为char语句
   System.out.println(times+")"+b);  
	}
 }


//获取文件名的后缀部分
	   String filenName = "logo.png";
	  int index = filenName.lastIndexOf(".")+1;//截取最后一个.  +1是.后面的数
	  String ext = filenName.substring(index); //获取index值
	  System.out.println(ext);
   }

//	控制台输入学生姓名 和5门功课的各科成绩,并输出平均成绩
public static void main(String[] args){
		Scanner scan = new Scanner(System.in);
		System.out.print("输入学生姓名:");
		String name = scan.next();
		int scort;
		int sum = 0;
		String[] xz = {"语文","数学","英语","化学","物理"};
		for(int a=0;a<5;a++){	
			System.out.print("请输入5门功课中的"+xz[a]+"门课的成绩:");
			scort = scan.nextInt();
			sum+=scort;
			if(a==4){
				System.out.println(name+"的平均分是"+sum/5);
			}
		}
		scan.close();
	}

// 有大写字符串若干,输出每个字符串的个数
	public static void main(String[] args){
		String str = "ADFJSDAKVCZNVASDLFKJWKVNXCZVMQRPIOEQWG";
		int[] counter = new int[26];
		for(int i=0; i<str.length();i++){
			counter[str.charAt(i)-'A']++;
		}
		System.out.println(Arrays.toString(counter));
	}

//10进制转换  7代表10进制转换为7进制
	public static void main(String[] args){
		System.out.println(parseInt("123",7));
		System.out.println(Integer.parseInt("123",7));
	}
	public static int parseInt(String num,int base){
		//String num = "123";
		int weight = 1;//base = 7;
		int sum = 0;
		for(int i=num.length()-1;i>=0;i--){
			sum += (num.charAt(i)-'0') * weight;
			weight *= base;
		}
		return sum;
	}

你可能感兴趣的:(java,java基础语言经典案例,java面向对象经典案例)