標籤:思路 tin i++ 變數 blog i+1 can input 動態
一、 什麼是數組及其作用?
定義:具有相同資料類型的一個集合
作用:儲存連續的具有相同類型的資料
二、 java中如何聲明和定義數組
2.1 聲明和定義的文法:
資料類型[ ] 數組名;( int[ ] nums ; ) 或 資料類型 數組名[]; ( int nums[ ] ;)
2.2 為數組分配空間
數組名=new 資料類型[數組的長度]; ( nums=new int[5] ;)
2.3 聲明數組,同時分配空間
資料類型[]數組名= new 資料類型[數組的長度];
資料類型 數組名[]=new 資料類型[數組的長度];
( int[ ] nums=new int[5] ;) ( int nums[ ]=new int[5] ;)
三、 如何讀取數組中的元素— 通過下標(索引)來擷取
下標(索引)是從0開始,最大下標為 數組長度-1
下標越界:ArrayIndexOutOfBoundsException
int類型的數組,每個元素的預設值為0
String類型的數組,每個元素的預設值為null
3.1 擷取單個元素的值
資料類型 變數名=數組名[下標];
3.2 迴圈讀取數組中的每個元素
數組的長度:數組名.length 屬性自動計算
for(int i=0;i<數組名.length ;i++){
數組名[i];
}
四。如何給數組中的元素賦值
方式1(賦予數組固定值):
聲明數組,分配空間,並賦值
(數組的長度由值的個數決定)
資料類型 數組名[]=new 資料類型[]{值1,值2…值n};
或
資料類型 []數組名={值1,值2…值n};
說明:[]中括弧可以放在數組名前面或後面
方式2:動態給數組賦值(從鍵盤中輸入)
Scanner input = new Scanner(System.in);
for(int i=0;i<數組名.length ; i++){
String類型的數組名[i]= input.next ();
int類型的數組名[i]= input.nextInt ();
double類型的數組[i]=input.nextDouble();
}
五、數組排序問題
使用Arrays. sort(數組名);
實現對數組中的元素按升序或降序輸出
六、求最大值或最小值
實現思路:將數組中的第1個元素的值,假想成最大(小)值【賦值】;然後數組中的每個元素和假想的這個最大(小)數進行比較,如果數組中的某個元素的值,比最大(小)數要大(小),將該元素的值,儲存到假想的最大(小)值對應的變數中
public class shuzu { public void D(int []num){ int ha []=new int[10]; for(int j=0;j<ha.length;j++){ int index=(int)(Math.random()*100); ha[j]=index; System.out.print(ha[j]+" "); } int max=ha[0]; int min=ha[0]; for(int i=1;i<ha.length;i++){ if(max<ha[i]){ max=ha[i]; } if(min>ha[i]){ min=ha[i]; } } System.out.println("\n"+"最大值為:"+max); System.out.println("最小值為:"+min); }}
八、求數組中最值的位置
1、 在迴圈的外面,定義變數k(賦值為0),用於儲存最值的下標
2、 在迴圈中,比較找出最值的同時,給變數k賦值
public static void main(String [] args){ Scanner input=new Scanner(System.in); char [] ha={‘a‘,‘c‘,‘u‘,‘b‘,‘e‘,‘p‘,‘f‘,‘z‘}; System.out.print("原字元序列:"); for (int i=0;i<ha.length;i++){ System.out.print(ha[i]+" "); } Arrays.sort(ha);//對數組進行降序 System.out.print("\n升序排列後:"); for (int i=0;i<ha.length;i++){ System.out.print(ha[i]+" "); } char he[]=new char[9];//建立一個新數組,進行儲存資料 for (int i=0;i<ha.length;i++){ he[i]=ha[i]; } System.out.println("\n插入的字元是:");//輸入新資料 char a=input.next().charAt(0); int index=he.length-1;//儲存新資料插入的位置 for (int i=0;i<he.length;i++){ if(a<he[i]){//對數字進行判斷 index=i;//找到新元素的下標位置 break; } } for (int s=he.length-2;s>=index;s--){ he[s+1]=he[s]; //將元素從後移動 } he[index]=a;//將輸入的值賦到數組中 System.out.println("\n插入的下標是:"+index); for (int k=0;k<he.length;k++){ System.out.print(he[k]+" "); } }
八、斐波那契數列
1,1,2,3,5,8,13,21,34……求第20個數位值?(使用迴圈)
規律:第i個 + 第(i+1)個 = 第(i+2)個
步驟1:定義數組,數組長度為20
int []nums=new int[20];
步驟2:根據規律,擷取第0個和第1個數的初值
nums[0]=1;
nums[1]=1;
步驟3:通過迴圈,給數組中的所有元素賦值
for ( int i=0;i<nums.length-2;i++){
nums [i+2]=nums[i]+nums[i+1];
}
或
for(int i=2;i<nums.length;i++){
nums[i]=nums[i-2]+nums[i-1];
}
步驟4:輸出nums[19]的值
java基礎(5)