欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

java--基础语法学习应用实例

程序员文章站 2022-03-26 16:40:35
Java笔记11-16笔记流程控制 spring boot spring cloud +SSMcontinue中断循环,本次循环立即退出,直接执行下一个循环。break;整个循环结束。跳出当前循环。当前循环结束,进如之后代码的。continue后可以跟着变量名称,可以跳转到指定循环位置,如下图所示。out:for(int i=1;i<100;i++){ //声明变量}continue out;//跳转固定位置变量名称。题目:古典问题:有一对兔子,从出生后第3...

Java笔记

11-16笔记

流程控制 spring boot spring cloud +SSM

  1. continue中断循环,本次循环立即退出,直接执行下一个循环。
  2. break;整个循环结束。跳出当前循环。当前循环结束,进如之后代码的。
  3. continue后可以跟着变量名称,可以跳转到指定循环位置,如下图所示。
out:for(int i=1;i<100;i++){
    //声明变量
}

continue out;//跳转固定位置变量名称。


题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,

小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

从第三个月开始前面两月之和等于第三个月

第一个月等于A。第二个月等于B,第三个月C=A+B

兔子的规律为数列

1,1,2,3,5,8,13,21…

设第一个月A,第二个月B。第三个月C,前两个月的和等于第三个月

如下:

public class Rabbit {

	public static void main(String[] args) {
		while(true) {
			int a=0;
			int b=0;
			int c=1;
		System.out.println("請輸入兔子月份");
		Scanner scan=new Scanner(System.in);
		int month=scan.nextInt();
		if(month<=0) {
			System.out.println("月份输入错误");
		}else{
			for(int i=2;i<=month;i++) {
			a=b;
			b=c;
			c=a+b;
			}
		System.out.println("第 "+month+"个月"+"有 "+c*2+"只兔子");
		}
		}
	}
}
 

一个数如果恰好等于它的因子之和,这个数就称为"完数"。

  • 例如6=1+2+3。编程找出1000以内的所有完数。

  • 因子:除去这个数本身的其它约数。

     public class day01 {
      	public static void main(String[] args) {	
      		for(int i=1;i<1000;i++) {
      		int c=0;
      		for(int y=1;y<i;y++) {
      			if(i % y ==0) {
      				c+=y;
      			}
      			
      		}
      		if(i==c) {
      		System.out.println(i);
      
            }
      	}
      }
       
    

例如:153是一个 "水仙花数 ",因为153=1的三次方+5的三次方+3的三次方。

程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。

 public class ShuixianHua {
  
  	public static void main(String[] args) {
  		for(int sum=100;sum<1000;sum++) {
             int bai=sum/100;
             int shi=sum/10%10;
             int ge=sum%10;
  	if(Math.pow(bai, 3)+Math.pow(shi, 3)+Math.pow(ge, 3)==sum) {
  		System.out.println("水仙花数是"+sum);
  	}
  		}
      }
  
  }

题目:将一个正整数分解质因数。例如:输入90,打印出90=233*5。

程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:

1.首先通过Scanner获取用户的值。然后再进行操作。

2.获取到值进行去余判断,


import java.util.Scanner;

public class Mathfenjie {
	 static int n,k = 2;

	    public static void main(String[] args) {
	        System.out.print("请输入一个大于2的正整数:");
	        Scanner scanner = new Scanner(System.in);
	        int n = scanner.nextInt();
	        System.out.print(n+"=" );
	        while(n!=k) {
	        	if(n % k == 0) {
	        		n = n/k;
	        		System.out.print(k+"*");
	        	}
	        	else {
	        		k++;
				}
	        }
	        System.out.print(n);
	    }
	}

题目:利用条件运算符的嵌套来完成此题:

学习成绩> =90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
1.程序分析:(a> b)?a:b这是条件运算符的基本例子。

public class studentScore {

	public static void main(String[] args) {
		while(true) {
		Scanner scan=new Scanner(System.in);
		System.out.println("请输入成绩");
		//键盘获取值
		int sum=scan.nextInt();
		//条件运算符运算,
		 String str=((sum>=90)?"A":(sum>=60)?"B":"C");
		System.out.println("分数是"+sum+"等级是"+str);
		}
	}

}

题目:输入两个正整数m和n,求其最大公约数和最小公倍数。 x

1.程序分析:利用辗除法


题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

1.程序分析:利用while语句,条件为输入的字符不为 '\n '.

11-17笔记

  • subString 截取字符串,用String接受

  • subString(0,1);从指定位置开始截取字符串,参数1:表示指定开始位置,参数2:,表示指定结束位置。

  • subSring (1); 单参数表示此参数的开始位置,截取到最后。

  • eg:

         String name= ="abcdefg";
         String res=name.substring(1,3);
            System.out.println(res);
    
    

    结果是:bc .

    substring.last

数组

1.数组定义

int[] a=new int[5];//动态初始化
int[] a=new int{1001,1992,1003};//静态初始化

2.数组本身是引用数据类型,则他的默认值是null,数组元素可以是基本数据类型。创建数组会在内存中开辟出一段连续的空间。

3.元素下标:从0开始。

数组元素是整形,默认值是0;

数组元素是浮点型,默认值是0.0;

数组元素是char型,默认值是ascll码0;

数组元素是布尔型,默认值是false,也是0;

数组元素是引用数据类型,默认值是null;

11-18笔记

数组‘

int[]x,y[];
//是由int[]x;+int[]y[];组成
//其中X为int型一维数组,y是int型二维数组。

1

1.数据结构处理的是数据与数据之间的逻辑关系:集合、一对一、一对多,多对多。

2、数据的存储结构

线性表:顺序表(数组)、链表、栈、队列

树形结构:二叉树

图形结构:

算法:

Java事务、 银行案例。

题目:输入两个正整数m和n,求其最大公约数和最小公倍数。

1.程序分析:利用辗除法。

public static void main(String[] args) {
		 Scanner scan = new Scanner(System.in);
		 System.out.println("请输入第一个正整数");
	        int n = scan.nextInt();
	        System.out.println("请输入第二个正整数");
	        int m = scan.nextInt();
	        if(n==m) {
	        	System.out.println("换个数。相同的数没有意思");
	        	
	        }else {
	       int temp;//三方量
	       int r=0; //余数
	       int bshu=m*n;
	       if(n<m) {
	           temp = n; 
	           n=m;
	           m=temp;    
	       } 
	       r=n%m;
	       while (r!=0)
	       {
	   	       n=m;
	           m=r;
	           r=n%m;
	       }
	    
	       bshu/=m;
	       System.out.println("最大公约数为"+m);
	       System.out.println("最小公倍数为"+bshu);
	        }

11-19笔记

九九乘法表

外层循环控制列数,内层循环控制行数。

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

	}

}

★杨辉三角。

/*用二维数组打印一个10行杨辉三角
 * 
 * 
 */
public class yanghuiTest {
		public static void main(String[] args) {
			int [][]yanghui =new int[10][];
			for(int i=0;i<yanghui.length;i++) {
			yanghui[i]=new int[i+1];
			yanghui[i][0]=1;
			yanghui[i][i]=1;
				if(i>1) {
					for(int j=1;j< yanghui[i].length-1;j++) {
						yanghui[i][j]=yanghui[i-1][j-1]+yanghui[i-1][j];
					}
				
				}
			}
			for(int i=0;i<yanghui.length;i++) {
				for(int j=0;j<yanghui[i].length;j++) {
					System.out.print(yanghui[i][j]+"  ");
				}
				System.out.println();
			}
		}
}

★回形数解法


★数组中面试常考题

★1.数组元素的赋值、(杨辉三角、回形数);

★求数组中元素最大值、最小值、平均数、总和等。

3.数组的复制、反转、★查找(线性查找、★二分法查找);

★4.数组元素的排序算法。

随机数的产生

数组生成随机数,采用math.random(),方法 此方法可以产生0.0-1.0之间的随机数,若想要10-99之间的随机数。

Math.random:[0.0,1);

Math.random* 90: [0.0,90.0)

(Math.random * 90 + 10):[10,99]

公式:获取[a,b]范围的随机数:(int)(Math.random( )* (b-a+ 1))+a

★求数组中元素最大值、最小值、平均数、总和等。

求数组中元素最大值、最小值、平均数、总和等。
    public class ArrayTest {

	public static void main(String[] args) {
			int[]num=new int[10];
			for(int i=0;i<num.length;i++) {
				num[i]=(int)(Math.random()*(99-10 + 1) + 10);
				
			}
			for(int i=0;i<num.length;i++) {
				System.out.print(num[i]+"  ");
			}
			System.out.println();
			//最大值获取
			int maxvalue=0;
			for(int i=0;i<num.length;i++){
				if(maxvalue<num[i]){
				maxvalue=num[i];
				}	
			}
			System.out.println("最大值是"+maxvalue);
			//最小值获取
			int minvalue=num[0];
			for(int i =1;i<num.length;i++) {
				if(minvalue>num[i]) {
					minvalue=num[i];
				}
			}
			System.out.println("最小值是"+minvalue);
			//数组元素的总和
			int sum=0;
			for(int i=0;i<num.length;i++) {
					sum +=num[i];
			}
			System.out.println("总和是"+sum);
			//平均数
			double avgvalue=(double)sum/num.length;
			
			System.out.println("平均数是"+avgvalue);
	}

}

数组插入排序。

数组的复制。P161,未看。

数组进行复制,array1=array2 ;

改变array2的值,array1也会改变。详情P163。

array1和array2地址值相同,都指向了堆空间当中的唯一的一个数组实体。

冒泡排序

冒泡排序算法的原理如下: [1]
比较相邻的元素。如果第一个比第二个大,就交换他们两个。 [1]
对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 [1]
针对所有的元素重复以上的步骤,除了最后一个。 [1]
持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。 [1]

/*
冒泡排序
 */
public class BubbleSort {
    public static void main(String[] args) {
        int[]num=new int[]{-30,30,-31,-50,0,889,43,23,432};
        //外层循环控制轮数。一共有9个数据,需要循环八轮才能完成数据查找。
        for (int i=0;i<num.length-1;i++){
                //内层循环控制每次轮数开始。
                for (int j=0;j<num.length-1-i;j++){
                    if(num[j]>num[j+1]) {
                        //交换值。
                        int temp = num[j];
                        num[j] = num[j + 1];
                        num[j + 1] = temp;
                    }
                }
        }
        for (int i=0;i<num.length;i++){
            System.out.print(num[i]+" ");
        }
    }
}

快速排序


本文地址:https://blog.csdn.net/weixin_44497661/article/details/109843685

相关标签: Java笔记 java