JAVA入門級知識儲備(一)
1.Scanner的歡樂接收
import java.util.Scanner;
public class first {
public static void main(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 class fist {
public static void main(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追蹤 找到該程式的問題


3.活學現用,編一個計算器玩玩吧
package mycal;
import java.util.Scanner;
import javax.sql.rowset.CachedRowSet;
public class counter {
public static void main(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 class Main{
public static void main(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.length;i++)
{
students[i]=input.nextDouble();
sum+=students[i];
}
ave=sum/n;
System.out.println(sum+" "+ave);
}
}
陣列題目 2.0(引入亂數的生成!)
import java.util.Scanner;
public class Main{
public static void main(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)
{
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 class Main{
public static void main(String[] args) {
final int N=51;
int [] nums=new int [N];
int n,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]<nums[j+1])//升序的話大于號
{
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 class Main{
public static void main(String[] args) {
final int 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]<nums[j])//升序則為大于號
{
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 class Main{
public static void main(String[] args) {
final int N=10;
int [] nums=new int [N];;
System.out.println("排序之前的陣列!");
for(int i=0;i<N;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<N;i++)
{
System.out.print(nums[i]+" ");
}
}
}
陣列4.0 二分查找
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
int searchnum;
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]<searchnum) left=mid+1;
else
{
System.out.print("找到了!下標為"+mid);
isfind=true;
break;
}
}
if(isfind==false) System.out.print("很遺憾,沒有找到!");
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/190785.html
標籤:Java
上一篇:SpringBoot的Web開發之WebSocket(廣播式)筆記總結
下一篇:Java裝飾模式
