java自学笔记_JAVA自学笔记(1)

JAVA入门级知识储备(一)

1.Scanner的欢乐接收

importjava.util.Scanner;public classfirst {public static voidmain(String[] args) {//扫描对象,用来扫描系统的输入

Scanner input=new Scanner(System.in);//扫描仪的名称自定义,一般好记为input;

/*各种类型如何输入

* char a=input.next().charAt(0); //获得用户输入字符串中的第一个字符

* String a=input.next();//next() 不读入空格 nextLine()相反

* int a=input.nextInt();

* double a=input.nextDouble();

**/System.out.println(a);

}

}

2.while循环里遇到浮点型陷入懵圈

import java.util.Scanner;public classfist {public static voidmain(String[] args) {double sum=1;double item=1;while(item!=0){

sum+=item;

item-=0.1;

System.out.println(item);

}

System.out.println(sum);

}

}

!!!循环里不要使用浮点型来比较值是否相等;

使用Debug追踪 找到该程序的问题

98c4eee2d23864da2f509d454f19babd.png

ddb022541e15eb4e6cad70a06c10e5b5.png

3.活学现用,编一个计算器玩玩吧

package mycal;

import java.util.Scanner;

import javax.sql.rowset.CachedRowSet;public classcounter {public static voidmain(String[] args) {

Scanner input=new Scanner(System.in);

String op="";

String ch=null;double result=0,num1,num2;do{

System.out.println("请输入两个操作数");

num1=input.nextDouble();

num2=input.nextDouble();

op=input.next();switch(op)

{case "+":

result= num1+num2;break;case "-":

result=num1-num2;break;case "*":

result=num1*num2;break;case "/":if(num2==0)

{

System.out.println("输入不合理!");

result=0;

}else{

result=num1/num2;

}break;case "%":

result=num1%num2;break;default:

System.out.println("输入的运算符不合理,运算失败!");

result=0;break;

}

System.out.println(num1 +op+num2+"="+result);

System.out.println("输入Y或者N");

ch=input.next();

}while("Y".equalsIgnoreCase(ch));

System.out.println("运算结束!");

}

}

4.走进数组的世界

* 关于一维数组的声明,声明后要在堆内存中分配空间 。基本类型处理时,在栈内存中直接分配了空间(不需要手动分配) 。

int[] nums=new int [5] //在堆内存中分配了5个int类型大小的空间 ,数组名即为新分配内存空间的首地址

* 关于一维数组的初始化,声明并初始化数组是不需要指明数组的大小

错误方式例如 int a[6]={0,1,2,3,4,5},int[6] a={0,1,2,3,4,5};

正确方式为 int a[]={0,1,2,3,4,5}//中括号在前在后都行

例题1.0 简单的数组题

import java.util.Scanner;public classMain{public static voidmain(String[] args) {

Scanner input=new Scanner(System.in);//输入n名同学的成绩,求出平均分,以及总和并打印;

int n=input.nextInt();double [] students=new double[5];double sum=0,ave=0;for(int i=0;i

{

students[i]=input.nextDouble();

sum+=students[i];

}

ave=sum/n;

System.out.println(sum+" "+ave);

}

}

数组题目 2.0(引入随机数的生成!)

import java.util.Scanner;public classMain{public static voidmain(String[] args) {

Scanner input=new Scanner(System.in);//随机生成n个数,打印最大值和最小值;

final int N=10;//常量N

int n=input.nextInt();int nums[]=new int[N];for (int i = 0; i < n; i++) {

nums[i]=(int)(Math.random()*1000)%1001;//0-1000之间的数

System.out.print(nums[i]+" ");

}

System.out.print("\n");int max=Integer.MIN_VALUE;int min=Integer.MAX_VALUE;for (int i = 0; i < n; i++) {if(nums[i]>max)

{

max=nums[i];

}if(nums[i]

{

min=nums[i];

}

}

System.out.print("输出最大值"+max+"\n"+"输出最小值"+min);

}

}

三种随机数生成的方式

第一种:new Random()

通过Random类来产生一个随机数,这个是专业的Random工具类,功能强大。

【PS:我们可以通过新建一个Random的对象来产生随机数,他可以产生随机整数、float、double、long型随机数】

第二种:Math.random()

通过Math.random()返回一个0到1之间的double值。

【PS:这个产生的随机数是0-1之间的一个double,我们可以把他乘以一定的倍数来得到想要的效果,比如说乘以10,他就是个10以内的随机 数】

第三种:currentTimeMillis()

通过System.currentTimeMillis()来获取一个当前时间毫秒数的long型数字。

【PS:这个方法返回一个从1970年1月1号0点0分0秒到目前的一个毫秒数,返回类型是long,我们可以拿它作为一个随机数,拿它对一些数取 模,就可以得到我们想要的一些范围内随机数】

数组3.0 排序大法!

round1 冒泡排序法

import java.util.Scanner;public classMain{public static voidmain(String[] args) {

finalint N=51;int [] nums=new int[N];intn,temp;

Scanner input=new Scanner(System.in);

n=input.nextInt();

System.out.println("排序之前的数组!");for(int i=1;i<=n;i++)

{

nums[i]=(int)(Math.random()*1000)%1001;//0-1000随机数;

System.out.print(nums[i]+" ");

}

System.out.println();for(int i=1;i<=n-1;i++)

{for(int j=1;j<=n-i;j++)

{if(nums[j]

{

temp=nums[j];

nums[j]=nums[j+1];

nums[j+1]=temp;

}

}

}

System.out.println("请打印出排序后的数组!");for(int i=1;i<=n;i++)

{

System.out.print(nums[i]+" ");

}

}

}

round2 选择排序法

import java.util.Scanner;public classMain{public static voidmain(String[] args) {

finalint N=51;int [] nums=new int[N];int n,temp=0;

Scanner input=new Scanner(System.in);

n=input.nextInt();

System.out.println("排序之前的数组!");for(int i=1;i<=n;i++)

{

nums[i]=(int)(Math.random()*1000)%1001;//0-1000;

System.out.print(nums[i]+" ");

}

System.out.println();for(int i=1;i<=n-1;i++)

{for(int j=i+1;j<=n;j++)

{if(nums[i]

{

temp=nums[j];

nums[j]=nums[i];

nums[i]=temp;

}

}

}

System.out.println("请打印出排序后的数组!");for(int i=1;i<=n;i++)

{

System.out.print(nums[i]+" ");

}

}

}

round3 sort 大法

import java.util.Arrays;public classMain{public static voidmain(String[] args) {

finalint N=10;int [] nums=new int[N];;

System.out.println("排序之前的数组!");for(int i=0;i

{

nums[i]=(int)(Math.random()*1000)%1001;//0-1000;

System.out.print(nums[i]+" ");

}

System.out.println();

Arrays.sort(nums);

System.out.println("请打印出排序后的数组!");for(int i=0;i

{

System.out.print(nums[i]+" ");

}

}

}

数组4.0 二分查找

import java.util.Scanner;public classMain{public static voidmain(String[] args) {

Scanner input=new Scanner(System.in);intsearchnum;

boolean isfind=false;int []nums={34,45,56,67,79};

searchnum=input.nextInt();int left=0,right=nums.length-1,mid=0;while(left<=right)

{

mid=(left+right)/2;if(nums[mid]>searchnum) right=mid-1;else if(nums[mid]

System.out.print("找到了!下标为"+mid);

isfind=true;break;

}

}if(isfind==false) System.out.print("很遗憾,没有找到!");

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值