Java经典代码

1.九九乘法表

代码图:

 package day0306;
 ​
 public class Demo01 {
     public static void main(String[] args) {
         for (int i = 1; i <= 9; i++) {
             for (int j = 1; j <= i; j++) {
                 System.out.print(i+"*"+j+"="+(i*j)+" ");
             }
             System.out.println();
         }
     }
 }

效果图:

 ​
 1*1=1 
 2*1=2 2*2=4 
 3*1=3 3*2=6 3*3=9 
 4*1=4 4*2=8 4*3=12 4*4=16 
 5*1=5 5*2=10 5*3=15 5*4=20 5*5=25 
 6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 
 7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 
 8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 
 9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81 

2.实现交替式发言

(如何实现交替式发言)

运行结果:

3.输出101~200之间的质数

判断101-200之间有多少个素数,并输出所有素数。 素数又叫质数,就是除了1和它本身之外,再也没有整数能被它整除的数。也就是素数只有两个因子。

 public class Text$01 {
 ​
     public static void main(String[] args) {
         int i,j,n,m,x;//n用来存取余数;m是用来统计具体一个数的因子;
         n = 0; m = 0; x = 0;//x是用来统计101~200之间素数的个数
         for(i = 101; i <= 200; i++) {
             for(j = 1; j<=i; j++) {//双重循环
                 n = i%j;
                 if(n == 0) {//判断余数为零,因子加一
                     m = m + 1;
                 }
             }
             if(m==2) {//当因子只有两个,那么该数为质数
                 System.out.println(i+" ");//输出质数
                 x = x+1;
             }
             m = 0;//使用完记得清零
         } 
         System.out.println();
         System.out.println("在101~200之间一共有素数"+x+"个");
     }
 ​
 }

4.

4.Java中输入3个整数并且实现按从小到大排序输出

1.if循环死方法(一个大循环if-else内嵌一个if-else-if-else法)

import java.util.Scanner;
public class demo {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("a=");
        int a = sc.nextInt();
        System.out.print("b=");
        int b = sc.nextInt();
        System.out.print("c=");
        int c = sc.nextInt();
        if (a > b) {                      //a>b的情况 a较大
            if (c > a) {                  //c>a 已知a>b c最大
                System.out.println(b + "," + a + "," + c);
            } else if (c < b) {  //c<b 已知a>b 
                System.out.println(c + "," + b + "," + a);
            } else {
                System.out.println(b + "," + c + "," + a);
            }
            // a<b情况
        } else {
            if (c < a) {                  //a<b c<a
                System.out.println(c + "," + a + "," + b);
            } else if (c > b) {           //a<b c>b
                System.out.println(a + "," + b + "," + c);
            } else {
                System.out.println(a + "," + c + "," + b);
            }
        }
    }
}

2.大中小逐个求法(三个if-else-if-else)

import java.util.Scanner;
public class test1 {
    public static void main(String[] args) {
        Scanner input=new Scanner(System.in);
        System.out.print("Enter a:");
        int a=input.nextInt();
        System.out.print("Enter b:");
        int b=input.nextInt();
        System.out.print("Enter c:"); //输入三个数
        int c=input.nextInt();
        int max =0;
        int mid=0;
        int min=0;
        if (a>b & a>c){max=a;}else if(b>a & b>c){  //暴力列举出最大数情况
            max=b;
        }else{
            max=c;
        }
        if(a<b & a<c ){min=a;}else if (b<a & b<c){  //列举出最小数所有情况
            min=b;
        }else{
            min=c;
        }
        if(a<b & a>c || a<c &a>c){mid=a;}else if(b<a & b>c || b>a & b<c){mid=b;}else{mid=c;} //列举出中间值情况
        System.out.println(min+" "+mid+" "+max);
    }
}

3.容器互换法(定义一个容器temp)(三个if并列法)

import java.util.Scanner;
public class demo {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        System.out.println("Enter");
        int a = s.nextInt();
        int b = s.nextInt();
        int c = s.nextInt();
        if (a < b) {
            int t = a;  /*如果a<b时候 a、b数值互换*/
            a = b;
            b = t;
        }
        if (a < c) {    /*如果a<c时候 a、c数值互换*/
            int t = a;
            a = c;
            c = t;
        }
        if (b < c) {    /*如果b<c时候 b、c数值互换*/
            int t = b;
            b = c;
            c = t;
        }
        System.out.println("");
        System.out.println(c + " " + b + " " + a);
    }
}

5.打印图形

1.打印等腰三角形(含解析)

public class PrintDY {
    public static void main(String[] args) {
        for (int i = 1; i <= 5; i++) {
             //外层循环;执行五次,控制图形有多少行
            for(int j=1;j<=5-i;j++){
             //内层循环1;控制打印空格,且不能换行
                System.out.print(" ");
            }
            for (int j = 1;j<=2*i-1;j++){
             //内层循环2;控制打印*,且不能换行
             //两个内层循环当中的j为循环内的局部变量,一旦脱离了创造它的循环,内存及释放,因此两者不为同一变量。
             //易错 j<=2*i-1而不是+1
                System.out.print("*");
            }            
            //输出换行符;在外层循环与内层循环之间
            System.out.println();
        }
       
        
    }
}

代码图:

	*
   ***
  *****
 *******
*********

2.打印菱形

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        Scanner cin = new Scanner(System.in);

        int n = cin.nextInt();//输出等腰三角形边长为n
        for (int i = 1; i <= n; i++) {//菱形上半部分为等腰三角形
            for (int j = 1; j <= n - i; j++) {
                System.out.print(" ");
            }
            for (int j = 1; j <= (i - 1) * 2 + 1; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
        for (int i = 1; i <= n - 1; i++) {//下半部分为道三角形
            for (int j = 1; j <= i; j++) {
                System.out.print(" ");
            }
            //(n*2)-1
            for (int j = 1; j <= 2 * n - 1 - i * 2; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
    }

}

代码图:

  	*
   ***
  *****
 *******
*********
 *******
  *****
   ***
    *

3.打印直角三角形(特殊)

public class Text02 {

	public static void main(String[] args) {
		for(int i = 1; i <= 4;i++) {
			for(int j = 1; j <= 2*i-1;j++) {
				System.out.print("*");
			}
			for(int j = 1; j<=9-(5-i)*2; j++) {
				System.out.print(" ");
			}
			System.out.println();
		}
		
	}

}

/*代码图:
    
* 
***   
*****     
*******

4.打印平行四边形

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

/*代码图:

 	*****
   *****
  *****
 *****
*****

6.数组赋值循环练习

import java.util.Scanner;
//5、黄黄去参加青年歌手大奖赛,有10个评委打分,(去掉一个最高一个最低)求平均分?利用数组实现评委打分录入存储,然后数组排序后去掉最高分最低分,计算显示平均分。
public class Text05 {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int[] score = new int[10];
		int sum = 0;
		for(int i = 0; i<score.length; i++) {
			System.out.println("请输入第"+(i+1)+"位评委打分:");//因为数组i初始值必须赋0,目															//的是让score[0]赋到值
			int a = scan.nextInt();
			if(a<0 || a>100) {
				System.out.println("您输入的数据有误!请重新输入:");
				i--;
				continue;//continue后面不能接语句,否则系统会报错。
			}
			score[i] = a;
			sum = sum + a;
		}
		int max = score[0];
		int min = score[0];
		for(int i = 0; i<score.length; i++) {
            //找出数组的最大值与最小值
			if(max < score[i]) {
				max = score[i];
			}else if(min > score[i]) {
				min = score[i];
			}
		}
		sum = sum-min-max;
		int avgScore = sum/(score.length-2);
		System.out.println("该选手的平均成绩为:"+avgScore);
	}

}


/*

请输入第1位评委打分:
1
请输入第2位评委打分:
2
请输入第3位评委打分:
3
请输入第4位评委打分:
4
请输入第5位评委打分:
5
请输入第6位评委打分:
6
请输入第7位评委打分:
8
请输入第8位评委打分:
9
请输入第9位评委打分:
7
请输入第10位评委打分:
10
该选手的平均成绩为:5

7.杨辉三角(二维数组练习)

public class Textyanghui {
	public static void main(String[] args) {
		int[][] arr = new int[10][10];
        for (int i = 0; i < arr.length; i++) {
            arr[i][0] = 1;
        }
        for (int i = 1; i < arr.length; i++) {
            for (int j = 1; j < arr.length; j++) {
                arr[i][j]=arr[i-1][j-1]+arr[i-1][j];
            }
        }
        for (int i = 0; i < arr.length ; i++) {
            for (int k = arr.length-i;k>0;k--) {
            }

            for (int j = 0; j < arr.length; j++) {

            if (arr[i][j]!=0) {

                System.out.print(arr[i][j]+"   ");}
            }
            System.out.println();
        }

	}
}

/*
1   
1   1   
1   2   1   
1   3   3   1   
1   4   6   4   1   
1   5   10   10   5   1   
1   6   15   20   15   6   1   
1   7   21   35   35   21   7   1   
1   8   28   56   70   56   28   8   1   
1   9   36   84   126   126   84   36   9   1   

8.数组练习

1、从键盘读入学生成绩,找出最高分,并输出学生成绩等级。(①使用Arrays当中的copyOF方法保存数组 copyOF也可作为数组扩容) 成绩>=最高分-10 等级为‘A’ 成绩>=最高分-20 等级为‘B’ 成绩>=最高分-30 等级为‘C’ 其余 等级为'D'

import java.util.Arrays;
import java.util.Scanner;

public class ArrayDemo01 {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		System.out.println("请输入学生人数:");
		int stuNum = scan.nextInt();
		//根据之前录入的学生人数,声明数组开辟对应大小空间
		int[] scores = new int[stuNum];
		System.out.println("请录入"+stuNum+"个成绩:");
		for(int i=0;i<stuNum;i++){
			scores[i] = scan.nextInt();
		}
		//for循环得到所有成绩,都存储在数组 scores中
		//通过 Arrays类中的sort()方法排序,排序后取最高分
		//查阅API:static void sort(int[] a) 对指定的 int 型数组按数字升序进行排序。 
		//在排序前将原本的顺序数组值保存下来,一遍后面要用
		int[] newScores = Arrays.copyOf(scores, scores.length);//复制原数组,将原数组顺序保存在新建数组newScores内。
		//int[] newScores = scores;//为什么这样不能完成复制数组
		Arrays.sort(scores);//将原数组进行升序排序,最高分为最后一个元素
		System.out.println("最高分为:"+scores[stuNum-1]);
		System.out.println("======================");
		for(int i=0;i<stuNum;i++){
			String grade = null;
			if(newScores[i]>scores[stuNum-1]-10){
				grade = "A";
			}else if(newScores[i]>scores[stuNum-1]-20){
				grade = "B";
			}else if(newScores[i]>scores[stuNum-1]-30){
				grade = "C";
			}else{
				grade = "D";
			}
			System.out.println("第"+(i+1)+"个学生成绩为:"+newScores[i]+" grade is"+grade);
		}
	}
}
/*
请输入学生人数:
5
请录入5个成绩:
99
86
42
75
38
最高分为:99
======================
第1个学生成绩为:99 grade isA
第2个学生成绩为:86 grade isB
第3个学生成绩为:42 grade isD
第4个学生成绩为:75 grade isC
第5个学生成绩为:38 grade isD

2.编写方法,利用数组实现学生的姓名排序 (按字母顺序)(使用Arrays当中的sort方法进行排列)

package day1030;

import java.util.Arrays;
import java.util.Scanner;
public class ArrayDemo02 {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		System.out.println("请一次输入5个学生的姓名:");
		//声明准备好一个数组接受输入的数据
		String[] names = new String[5];
		//for循环录入姓名
		for(int i=0;i<5;i++){
			names[i] = scan.next();//输入姓名赋值存储到数组元素
		}
		System.out.println("======排序后=======");
		//利用Arrays类中的sort()方法进行排序
		Arrays.sort(names);
		//打印显示排序后的姓名,验证一下
		for(String name:names){
			System.out.print(name+"\t");
		}
	}
}
/*
请一次输入5个学生的姓名:
jack
rose
bob
tom
lucy
======排序后=======
bob	jack	lucy	rose	tom	

3.调用方法求数组的平均值

public class AvgArray {
	public static void main(String[] args) {
		int[] arr = {1,2,3,4};
		System.out.println(avg(arr));
	}
	public static double avg(int[] arr) {
	//实现一个方法avg,以数组为参数,求数组中所有元素的平均值(注意方法的返回值类型)。
	double sum = 0;
	for(int value : arr) {
		sum += value;
	}
	return sum/arr.length;
}
}

4.利用数组求最值

public class ArrayDemo04 {
    public static void main(String[] args) {
        int max = 0;
        int[] arr4 = new int[]{44, 29, 98, 75};
        for (int i = 1; i < arr4.length; i++) {
            max = arr4[0];
            if (arr4[i] > max) {
                max = arr4[i];
            }
        }
        System.out.println(max);
    }
}
运行结果:
    7

5.反转数组元素各值

//定义一个方法使数组各个元素倒置
public class Demo03 {
    public static void main(String[] args) {
        int[] arr = new int[]{19, 28, 37, 46, 50};
      	reserve(arr);
        plantArray(arr);
    }
    //返回值类型:void 因为数组为一个引用形参类型,调用方法直接影响数组值,而不需要返回值
    //参数:int[] arr
    //反转数组方法
    public static void reserve(int[] arr){
        for (int start = 0, end = arr.length-1; start <= end; start++, end--) {//利用for循环遍历数组,定义一个头数组元素和尾数组元素,定义一个临时空间temp用来使头元素和尾元素交换,交换完毕后头元素-1,尾元素+1,且头元素不大于尾元素。
            int temp = arr[start];
            arr[start] = arr[end];
            arr[end] = temp;
        }
    }

    //返回值类型:void
    //参数:int[] arr
    //打印数组方法
    public static void plantArray(int[] arr) {
        System.out.print("[");
        for (int i = 0; i < arr.length; i++) {
            if (i == arr.length - 1) {
                System.out.print(arr[i]);
            } else {
                System.out.print(arr[i] + ",");
            }
        }
        System.out.print("]");
    }
}
运行结果:
    [50,46,37,28,19]

9.类和对象

1.类和对象的创建和引用

import java.util.Scanner;
public class Demoproject03 {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int java,C,DB;
		ScoreCalc score = new ScoreCalc();
		System.out.println("请该同学的输入java的成绩:");
		java = scan.nextInt();
		System.out.println("请输入C的成绩:");
		C = scan.nextInt();
		System.out.println("请输入DB的成绩:");
		DB = scan.nextInt();
		score.avgScore();
		System.out.println("该同学总成绩是:"+score.sumScore(java, DB, C));
		System.out.println("平均成绩是:"+score.avgScore());
		}
	}

class ScoreCalc{
	//属性;
	public int sum;
	//方法;
	public int sumScore(int a,int b,int c) {//调用此方法自动给类方法属性sum赋值
        								//方法参数列表可以不用定义,但方法内的其他属性需先定义
		sum = a+b+c;
		return sum;//如sum属性,需在类当中定义 而a,b,c不需在方法内定义
	}
	public double avgScore() {
		return sum/3;
	}
}

/*
请该同学的输入java的成绩:
85
请输入C的成绩:
90
请输入DB的成绩:
100
该同学总成绩是:275
平均成绩是:91.0

10.ArrayList集合经典代码

1.存储学生信息并遍历

import java.util.ArrayList;
import java.util.Scanner;

public class ArrayListTest01 {
    public static void main(String[] args) {
        ArrayList<Student> array = new ArrayList<Student>();
        addStudent(array);
    }

    /*  定义方法addStudent
      返回值类型:void
      参数:ArrayList<Student> array*/
    public static void addStudent(ArrayList<Student> array) {
        Scanner scan = new Scanner(System.in);
        System.out.println("请输入学生姓名:");
        String name = scan.nextLine();
        System.out.println("请输入学生年龄:");
        int age = scan.nextInt();
        Student s = new Student();
        s.setName(name);
        s.setAge(age);
        array.add(s);
        System.out.println("学生姓名:" + s.getName() + "学生年龄:" + s.getAge());
    }
}

//学生类
public class Student {
    private String name;
    private int age;

    public Student() {
    }

    public Student(String name, int age) {
        this.age = age;
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

11.自制学生管理系统

public class Student {//定义一个学生类
    private String Sid;
    private String name;
    private int age;
    private String address;

    public Student() {
    }

    public Student(String Sid, String name, int age, String address) {
        this.Sid = Sid;
        this.name = name;
        this.age = age;
        this.address = address;
    }

    public String getSid() {
        return Sid;
    }

    public void setSid(String Sid) {
        this.Sid = Sid;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }
}

import java.util.ArrayList;//主界面测试类
import java.util.Scanner;

public class StudentManager {
    public static void main(String[] args) {
        ArrayList<Student> array = new ArrayList<Student>();
        boolean flag = true;
        while (flag) {
            System.out.println("----------欢迎来到学生管理系统----------");
            System.out.println("1.添加学生");
            System.out.println("2.删除学生");
            System.out.println("3.修改学生");
            System.out.println("4.查看所有学生");
            System.out.println("5.退出");
            System.out.println("请输入你的选择:");
            Scanner scan = new Scanner(System.in);
            String line = scan.nextLine();
            switch (line) {
                case "1":
//                    System.out.println("添加学生");
                    addStudent(array);
                    break;
                case "2":
//                    System.out.println("删除学生");
                    deleteStudent(array);
                    break;
                case "3":
//                    System.out.println("修改学生");
                    updateStudent(array);
                    break;
                case "4":
//                    System.out.println("查看所有学生");
                    findAllStudent(array);
                    break;
                case "5":
                    System.out.println("谢谢使用");
                    flag = false;
//                    System.exit(0);//退出java虚拟机
                    break;
            }
        }
    }

    public static void addStudent(ArrayList<Student> array) {
        Scanner scan = new Scanner(System.in);
        String sid;
        while(true){
        System.out.println("请输入学生学号:");
        sid = scan.nextLine();
        if (isUsed(array,sid)== true) {
            System.out.println("您输入的学号已存在,请重新输入");
        }else{
            break;
            }
        }
        System.out.println("请输入学生姓名:");
        String name = scan.nextLine();
        System.out.println("请输入学生年龄:");
        int age = scan.nextInt();
        System.out.println("请输入学生居住地:");
//        String addres = scan.nextLine();不能用nextline(),打回车键会自动录入在nextline当中;
        String address = scan.next();
        Student s = new Student();
        s.setSid(sid);
        s.setName(name);
        s.setAge(age);
        s.setAddress(address);
        array.add(s);
        System.out.println("添加学生成功");


    }

    public static void findAllStudent(ArrayList<Student> array) {
        if (array.size() == 0) {
            System.out.println("无信息,请先添加信息再查询");
            return;//为了让程序不再执行return;
        }
        System.out.println("学号\t\t姓名\t\t年龄\t\t居住地");
        for (int i = 0; i < array.size(); i++) {
            Student s = array.get(i);
            System.out.println(s.getSid() + "\t" + s.getName() + "\t\t" + s.getAge() + "岁\t\t" + s.getAddress());
        }
    }

    public static void deleteStudent(ArrayList<Student> array) {

        // 创建键盘录入对象
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入你要删除的学生的学号:");
        String Sid = sc.nextLine();
        // 我们必须给出学号不存在的时候的提示
        // 定义一个索引
        // 遍历集合
        int index = -1;
        for (int i = 0; i < array.size(); i++) {
            // 获取到每一个学生对象
            Student s = array.get(i);
            // 拿这个学生对象的学号和键盘录入的学号进行比较
            if (s.getSid().equals(Sid)) {
                index = i;
                break;
            }
        }
        if (index == -1) {
            System.out.println("该信息不存在,请重新输入");
        }else{
            array.remove(index);
            System.out.println("删除学生成功");
        }
    }

    public static void updateStudent(ArrayList<Student> array){
        Scanner scan =  new Scanner(System.in);
        Student s = new Student();
        System.out.println("请输入你要修改的学生的学号:");
        String sid = scan.nextLine();
        int index = -1;
        for (int i = 0; i <array.size() ; i++) {
            Student student = array.get(i);
            if (student.getSid().equals(sid)) {
                array.set(i,s);
                index = i;
                break;
            }
        }
        if (index == -1) {
            System.out.println("该信息不存在,请重新输入");
            return;
        }
        System.out.println("请输入学生新姓名:");
        String name = scan.nextLine();
        System.out.println("请输入学生新年龄:");
        int age = scan.nextInt();
        System.out.println("请输入学生新居住地:");
        String address = scan.next();

        s.setSid(sid);
        s.setName(name);
        s.setAge(age);
        s.setAddress(address);
        System.out.println("修改学生成功");
    }

    public static boolean isUsed(ArrayList<Student> array, String sid){
        boolean flag = false;
        for (int i = 0; i <array.size() ; i++) {
            Student s = array.get(i);
            if (s.getSid().equals(sid)) {
                flag = true;
                break;
            }
        }
        return flag;
    }
}

运行结果:

----------欢迎来到学生管理系统----------
1.添加学生
2.删除学生
3.修改学生
4.查看所有学生
5.退出
请输入你的选择:
1
请输入学生学号:
2020370227
请输入学生姓名:
邱文宣
请输入学生年龄:
20
请输入学生居住地:
江西抚州
添加学生成功
----------欢迎来到学生管理系统----------
1.添加学生
2.删除学生
3.修改学生
4.查看所有学生
5.退出
请输入你的选择:
1
请输入学生学号:
2020370228
请输入学生姓名:
汪忠辉
请输入学生年龄:
20
请输入学生居住地:
江西上饶
添加学生成功
----------欢迎来到学生管理系统----------
1.添加学生
2.删除学生
3.修改学生
4.查看所有学生
5.退出
请输入你的选择:
3
请输入你要修改的学生的学号:
2020370226
该信息不存在,请重新输入
----------欢迎来到学生管理系统----------
1.添加学生
2.删除学生
3.修改学生
4.查看所有学生
5.退出
请输入你的选择:
1
请输入学生学号:
2020370226
请输入学生姓名:
崔龙成
请输入学生年龄:
20
请输入学生居住地:
贵州贵阳
添加学生成功
----------欢迎来到学生管理系统----------
1.添加学生
2.删除学生
3.修改学生
4.查看所有学生
5.退出
请输入你的选择:
4
学号		姓名		年龄		居住地
2020370227	邱文宣		20岁		江西抚州
2020370228	汪忠辉		20岁		江西上饶
2020370226	崔龙成		20岁		贵州贵阳
----------欢迎来到学生管理系统----------
1.添加学生
2.删除学生
3.修改学生
4.查看所有学生
5.退出
请输入你的选择:
2
请输入你要删除的学生的学号:
2020370226
删除学生成功
----------欢迎来到学生管理系统----------
1.添加学生
2.删除学生
3.修改学生
4.查看所有学生
5.退出
请输入你的选择:
5
谢谢使用

Process finished with exit code 0

11.如何取一个数字的各个位上的数字

public static void main(String[] args){
        int s = 1831;
        int g = s%10;
        int s = s/10%10;
        int b = s/100%10;
        int q = s/1000%10;
        System.out.println("个位数是:"+g+";十位数是:"+sw+";百位数是:"+b+";千位数是:"+q);
    }
结果:个位数是:1;十位数是:3;百位数是:8;千位数是:1

12.百钱买百鸡

public class Demo08 {
    public static void main(String[] args) {
        for (int a = 0; a <= 20; a++) {
            for (int b = 0; b < 33; b++) {
                for (int c = 0; c < 100; c++) {
                    if (a + b + c == 100 && 5 * a + 3 * b + c/3 == 100){
                        System.out.println("鸡翁有"+a+"只,鸡母有"+b+"只,鸡雏有"+c+"只");
                    }
                }
            }
        }
    }
}

13.评委打分

import java.util.Scanner;
public class Demo05 {
    public static void main(String[] args) {
        int[] arr = new int[6];
        System.out.println("请输入六个评委打分:");
        Scanner scan = new Scanner(System.in);
        for (int i = 0; i < arr.length; i++) {
            arr[i] = scan.nextInt();
        }
        System.out.println("该选手成绩为:"+(sumArray(arr)-minArray(arr)-maxArray(arr))/4);
    }
    //方法一:求数组最高分
    //    返回值:int
    //    参数:arr[]
    public static int maxArray(int[] arr) {
        int max = arr[0];
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] > max) {
                max = arr[i];
            }
        }
        return max;
    }
    //方法二:求数组最低分
    //    返回值:int
    //    参数: arr[]
    public static int minArray(int[] arr) {
        int min = arr[0];
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] < min) {
                min = arr[i];
            }
        }
        return min;
    }
    //方法三:数组求和
//    返回值:int sum;
//    参数:int[] arr;
    public static int sumArray(int[] arr){
        int sum = 0;
        for (int i = 0; i <arr.length ; i++) {
            sum+=arr[i];
        }
        return sum;
    }
}
运行结果:
   请输入六个评委打分:
44
55
66
77
88
99
该选手成绩为:71

14.标准类领养宠物

import java.util.Scanner;

public class ThethodDemo01 {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        System.out.println("欢迎来到宠物店!");
        System.out.println("请输入要领养的宠物名字:");
        String name = scan.next();
        System.out.println("请输入要领养的宠物类型:(1.狗狗 2.企鹅)");
        int choose = scan.nextInt();
        if (choose == 1) {
            Dog dog = new Dog();
            dog.setName(name);
            System.out.println("请输入狗狗的品种:(1.聪明的拉布拉多 2.酷酷的雪纳瑞)");
            int pz = scan.nextInt();
            if (pz == 1) {
                dog.setBrand("聪明的拉布拉多");
            } else {
                dog.setBrand("酷酷的雪纳瑞");
            }
            System.out.println("请输入狗狗的健康值(1~100之间):");
            int jkz = scan.nextInt();
            dog.setHealthValue(jkz);
            dog.showInfo();
        } else {
            Penguin pen = new Penguin();
            pen.setName(name);
            pen.setHealthValue(100);
            pen.setLoveValue(20);
            System.out.println("请输入企鹅的性别:(1.Q仔 2.Q妹)");
            int xb = scan.nextInt();
            if (xb == 1) {
                pen.setSex("雄");
            } else {
                pen.setSex("雌");
            }
            pen.showInfo();
        }


    }
}


//编写类的四个步骤
class Dog {
    //1--封装所有属性
    private String name;
    private int healthValue;
    private int loveValue;
    private String brand;

    //2--为封装的所有属性提供对外公共的setter和getter方法
    //3--编写构造方法
    public Dog() {
    }

    public Dog(String name, int healthValue, int loveValue, String brand) {
        this.name = name;
        this.healthValue = healthValue;
        this.loveValue = loveValue;
        this.brand = brand;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getHealthValue() {
        return healthValue;
    }

    public void setHealthValue(int healthValue) {
        if (healthValue >= 100 || healthValue <= 0) {
            System.out.println("你输入的健康值有误!默认值为60.");
            healthValue = 60;
        }
        this.healthValue = healthValue;

    }

    public int getLoveValue() {
        return loveValue;
    }

    public void setLoveValue(int loveValue) {
        this.loveValue = loveValue;
    }

    public String getBrand() {
        return brand;
    }

    public void setBrand(String brand) {
        this.brand = brand;
    }

    //4--编写功能方法,显示宠物所有信息
    public void showInfo() {
        System.out.println("宠物自白:\n" + "我的名字叫" + getName() + ",健康值是" + getHealthValue() + ",和主人的亲密度是" + getLoveValue() + ",我是一只" + getBrand());
    }
}

class Penguin {
    //1--封装所有属性
    private String name;
    private int healthValue;
    private int loveValue;
    private String sex;

    //2--为封装的所有属性提供对外公共的setter和getter方法
    //3--编写构造方法
    public Penguin() {
    }

    public Penguin(String name, int healthValue, int loveValue, String sex) {
        this.name = name;
        this.healthValue = healthValue;
        this.loveValue = loveValue;
        this.sex = sex;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getHealthValue() {
        return healthValue;
    }

    public void setHealthValue(int healthValue) {

        this.healthValue = healthValue;

    }

    public int getLoveValue() {
        return loveValue;
    }

    public void setLoveValue(int loveValue) {
        this.loveValue = loveValue;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    //4--编写功能方法,显示宠物所有信息
    public void showInfo() {
        System.out.println("宠物自白:\n" + "我的名字叫" + getName() + ",健康值是" + getHealthValue() + ",和主人的亲密度是" + getLoveValue() + ",我的性别是" + getSex());
    }
}


运行结果:
欢迎来到宠物店!
请输入要领养的宠物名字:
爱爱
请输入要领养的宠物类型:(1.狗狗 2.企鹅)
1
请输入狗狗的品种:(1.聪明的拉布拉多 2.酷酷的雪纳瑞)
2
请输入狗狗的健康值(1~100之间):
120
你输入的健康值有误!默认值为60.
宠物自白:
我的名字叫爱爱,健康值是60,和主人的亲密度是0,我是一只酷酷的雪纳瑞

15.用户登录

import java.util.Scanner;

public class Demo02 {
    public static void main(String[] args) {
        String username = "itheima";
        String password = "czbk";
        Scanner scan = new Scanner(System.in);
        for (int i = 1; i <= 3; i++) {


            System.out.println("请输入用户名:");
            String name = scan.next();
            System.out.println("请输入密码:");
            String pwd = scan.next();

            if (name.equals("itheima") && pwd.equals("czbk")) {
                System.out.println("登入成功!");
                break;
            } else {
                System.out.println("登入失败!你还有" + (3 - i) + "次机会.");
            }
        }
    }
}

运行结果:
    请输入用户名:
    qwe
    请输入密码:
    qe
    登入失败!你还有2次机会.
    请输入用户名:
    itheima
    请输入密码:
    czbk
    登入成功!

16.继承

1.teacher与student类(学生与老师)

public class Person {//建立一个person类作为基类
    private String name;
    private int age;

    public Person(){}
    public Person(String name, int age){
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
    
    public class Teacher extends Person{//创建一个Teacher类继承Perso类
    public Teacher(){}
//    public Teacher(String name, int age){
//        this.name = name;
//        this.age = age;
//    } 系统报错:即子类不能直接访问父类的私有变量private
    public Teacher(String name, int age){//继承父类当中的构造方法
        super(name,age);//使用super关键字来使子类继承父类当中的构造进行方法初始化
    }
    public void teach(){
        System.out.println("用爱成就每一位学员");
    }
}
    
    public class Student extends Person{//创建一个Student类继承Person基类
    public Student(){}
    public Student(String name, int age){
        super(name,age);
    }
    public void study(){
        System.out.println("好好学习,天天向上.");
    }
}

    public class Demo03 {//测试类
    public static void main(String[] args) {
        Teacher t1 = new Teacher();//无参构造方法
        t1.setName("林青霞");
        t1.setAge(30);
        System.out.println(t1.getName()+";"+t1.getAge());
        t1.teach();

        Teacher t2 = new Teacher("风清扬", 33);//带参构造方法
        System.out.println(t2.getName()+";"+t2.getAge());
        t2.teach();

        Student s = new Student("花无缺",20);
        System.out.println(s.getName()+";"+s.getAge());
        s.study();
    }
}
    
运行结果:
    林青霞;30
    用爱成就每一位学员
    风清扬;33
    用爱成就每一位学员
    花无缺;20
    好好学习,天天向上.

2.龟兔赛跑

public class Animal {//定义基类Animal
    private double speed;

    public Animal() {
        super();
    }

    public Animal(double speed) {
        super();
        this.speed = speed;
    }



    public void setSpeed(double speed) {
        this.speed = speed;
    }

    public double getSpeed() {
        return speed;
    }
   
    public void run(int length) {//定义run方法
        System.out.println(length + "米跑了" + (length / speed) + "秒");
    }
}


public class Rabbit extends Animal{//定义子类Rabbit
    public Rabbit() {
    }

    public Rabbit(double speed){
        super(speed);
    }

}


public class Tortoise extends Animal{//定义子类torto
    public Tortoise() {
    }

    public Tortoise(double speed) {
        super(speed);
    }
}


public class Match {//定义Match类
    private double length;

    public Match() {
    }

    public Match(double length) {
        this.length = length;
    }

    public double getLength() {
        return length;
    }

    public void setLength(double length) {
        this.length = length;
    }

    public void begin(Rabbit rr,Tortoise tt){
        System.out.println(length+"米兔子跑了"+(this.length/rr.getSpeed())+"秒");
        System.out.println(length+"米乌龟跑了"+(this.length/tt.getSpeed())+"秒");
    }
}


public class Demo01 {//定义测试类
    public static void main(String[] args) {
        Rabbit rr = new Rabbit(100);
        Tortoise tt = new Tortoise(15);
        Match match = new Match(800);
        match.begin(rr,tt);

    }
}

运行结果:
    800.0米兔子跑了8.0秒
    800.0米乌龟跑了53.333333333333336秒

17.最大公因数与最小公倍数

1)基本概念

最大公因数,也称最大公约数、最大公因子,指两个或多个整数共有约数中最大的一个。a,b的最大公约数记为(a,b),同样的,a,b,c的最大公约数记为(a,b,c),多个整数的最大公约数也有同样的记号。

2)最大公因数:==辗转相除法(欧几里得算法)==

如,求(319,377)的最大公因数

319/377 = 0...319 (319,377)->(377,319)

377/319 = 1...58 (377,319)->(319,58)

319/58 = 5...29 (319,58)->(58,29)

58/29 = 2...0 (58,29) = (29,0)

因此,(319,377)的最大公因数为29;

2.最小公倍数

1)基本概念

两个或多个整数公有的倍数叫做它们的公倍数,其中除0以外最小的一个公倍数就叫做这几个整数的最小公倍数。整数a,b的最小公倍数记为[a,b],同样的,a,b,c的最小公倍数记为[a,b,c],多个整数的最小公倍数也有同样的记号。

与最小公倍数相对应的概念是最大公约数,a,b的最大公约数记为(a,b)。关于最小公倍数与最大公约数,我们有这样的定理:==(a,b)[a,b]=ab(a,b均为整数)==

package day1125;

import java.util.Scanner;

public class Demo04 {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		System.out.println("请输入两个整数:");
		int a = scan.nextInt();
		int b = scan.nextInt();
		System.out.println(gcd1(a,b));
		System.out.println(gcd2(a,b));
		System.out.println(lcm1(a,b));
		System.out.println(lcm2(a,b));
	}
	public static int gcd1(int a, int b) {//最大公因数 递归法
		if(b==0) { 
		return a;
	}
		int r = a%b;
		return gcd1(b,r);
	}
	public static int lcm1(int a, int b) {//最小公倍数 公式法
		return a*b/gcd1(a,b);
	}
	public static int gcd2(int a, int b) {//最大公因数 枚举法
		int min = Math.min(a, b);
		int result = 0;
		for(int i = 1; i <= min; i++) {
			if(a%i==0 && b%i==0) {
				result = i;
			}
		}
		return result;
	}
	public static int lcm2(int a,int b){//最小公倍数 枚举法
        int temp=0;
        if(a<=0||b==0){
            return -1;
        }
        temp=Math.max(a,b);
        while(temp%a!=0||temp%b!=0){
            temp++;
        }
        return temp;
    }
}

18.闰年判断

闰年判断:

package lqbday1129;

import java.util.Scanner;

//给定一个年份,判断这一年是不是闰年。
//当以下情况之一满足时,这一年是闰年:
//年份是4的倍数而不是100的倍数;
//年份是400的倍数。
//其他的年份都不是闰年。
public class Lunnianpanduan {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		while(true) {
		System.out.println("请输入一个年份:");
		int year = scan.nextInt();
		if(year<1990 || year>2050) {
			System.out.println("你输入的日期有误,请重新输入!");
		}else {
		if((year%4==0 && year%100!=0) || year%400==0) {
			System.out.println("该年份是闰年!");
		}else {
			System.out.println("该年份为平年!");
		}
		}
	}
}
	}

19.进制转换

package com.zth;
import java.util.Scanner;
public class JinZhi {
  // 十进制转换为 n 进制
  public String fun(int n,int num) {
    // n 表示目标进制, num 要转换的值
    String str= "";
    int yushu ;      // 保存余数
    int shang = num;      // 保存商
    while (shang>0) {
      yushu = shang %n;
      shang = shang/n;
      
      // 10-15 -> a-f
      if(yushu>9) {
        str =(char)('a'+(yushu-10)) + str;
      }else {
        str = yushu+str;
      }
    }
    
    return str;
  }
 
  public static void main(String[] args) {
    // TODO Auto-generated method stub
    JinZhi s1 = new JinZhi();
    
    Scanner scanner = new Scanner(System.in);
    System.out.print("请输入目标进制:");
    int jinzhi = scanner.nextInt();
    System.out.print("请输入要转换的数字:");
    int num = scanner.nextInt();
    scanner.close();
    
    System.out.println(s1.fun(jinzhi, num));
  }
 
}

例:含偏移量的进制转换

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        Scanner cin = new Scanner(System.in);
        int x = cin.nextInt();
        String s = "";//空数组接收值
        while (x > 0) {//判断值是否为0 
            s += (char) ((x - 1) % 26 + 'A');
            x = (x - 1) / 26;
        }
        for (int i = s.length() - 1; i >= 0; i--) {
            System.out.print(s.charAt(i));
        }
    }

}

20.用ArrayList集合存储Student对象,并按学生成绩排序遍历

package demo01;

//4、定义一个学生集合,有年龄,考试分数,姓名三个属性 请从控制台接收5个学生,
//        存储到ArrayList集合对象中,并根据考试分数属性进行排序。

import java.util.ArrayList;
import java.util.Comparator;

public class ArrayList01 {
    public static void main(String[] args) {
        Student s1 = new Student("张三", 23,99);
        Student s2 = new Student("李四", 24,50);
        Student s3 = new Student("王五", 25,85);
        Student s4 = new Student("赵六", 26,70);
        Student s5 = new Student("刘七", 26,90);
        ArrayList<Student> list = new ArrayList<>();
        list.add(s1);
        list.add(s2);
        list.add(s3);
        list.add(s4);
        list.add(s5);
        list.sort(new Comparator<Student>() {
            @Override
            public int compare(Student s1, Student s2) {
                int num = s1.getScore() - s2.getScore();
                int num1 = num == 0 ? s1.getName().compareTo(s2.getName()) : num;
                return num1;
            }
        });
        for (Student s : list) {
            System.out.println(s.getName() + "," + s.getAge()+","+s.getScore());
        }
    }
}
class Student {
    private String name;
    private int age;
    private int score;

    public Student() {
    }

    public Student(String name, int age, int score) {
        this.name = name;
        this.age = age;
        this.score = score;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public int getScore() {
        return score;
    }

    public void setScore(int score) {
        this.score = score;
    }
}

21.生成随机数

两种方法:

1.Random类

可以生成任意数据类型的随机数,需先创建类对象

package demo04;

import java.util.Random;

public class Text01 {
    public static void main(String[] args) {
        Random r = new Random();

        int i = r.nextInt();//生成所有int范围内的整数
        int i1 = r.nextInt(18)-3;//生成[-3,15)之间的数
        int i2 = r.nextInt(10);//生成[0,10)之间的数
        double d = r.nextDouble();//生成[0,1.0)之间的数
        double d1 = r.nextDouble()*7;//生成[0,7.0)之间的数
        float f = r.nextFloat();//生成一个[0,1.0)之间的随机浮点型数
        boolean b = r.nextBoolean();//生成一个随机布尔型值
        long l = r.nextLong();//生成一个long范围之间的所有随机长整型数
        
    }
}

2.Math类当中的random()方法

只能默认生成[0~1.0)之间的浮点型数,可以通过强制类型转换转为int型,无需创建类对象

int a = (int)(Math.random()*1000);//[0,1000)
int a1 = (int)(2+Math.random()*98);//[2,100)

我们可以这么定义:

package demo04;

public class Text02 {
    public static void main(String[] args) {
        int Min = 2;//定义最大值
        int Max = 102;//定义最小值
        for (int i = 0; i < 10; i++) {
            int s = (int) Min + (int) (Math.random() * (Max - Min));//生成一个[2~102)的随机数       
            System.out.println(s);
        }
    }
}
  • 32
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值