數組、運算符、流程控制
1.數組
1.1數組的基本概念及作用
1.數組是相同數據類型元素的集合
數組本身是引用數據類型,即對象。但是數組可以存儲基本數據類型,也可以存儲引用數據類型。
2.數組的舉例:
int [] a = new int []{45,65,548,74,12};
String [] s = new String []{"小紅","小李","小凱"};
1.2數組的聲明
1.數組的聲明的兩種方式:
數據類型 [] 數組名字 例如:int [] a;
數據類型 數組的名字 [] 例如: int a [];
註意:
在Java語言中兩種聲明方法沒有任何區別,但是建議大家用第一種,避免混淆
數組在聲明後還只是一個空指針,不能使用,要想使用必須創建。
1.3數組的創建
1.數組創建的三種方式:
//聲明數組的同時,根據指定的長度分配內存,但數組中元素值都為默認的初始化值
double [] a=new double[15];
//聲明數組並分配內存,同時將其初始化
int[] b = new int[]{15, 56, 87, 458, 332};
//與前一種方式相同,僅僅只是語法相對簡略
int[] ary2 = {15, 56, 87, 458, 332};
2.從另一個角度,數組創建可以分為動態和靜態兩種
動態創建數組(沒有為元素賦值,可以結合for循環進行賦值)
char[] a = new char[12];
靜態創建數組,在創建的時候,即為每個元素賦初值
int[] ary1 = new int[]{45,23,45,6,15,23};
1.4數組的長度
int [] a = new int []{45,23,45,6,15,23};
System.out.println(a.length);
註意:數組的長度是屬性,String的長度是length();
創建數組的時候必須指定數組的長度,而且一經定義則不允許改變。
數組的長度雖然是7,但是在內存中實際給8個位置,另外一個存儲7.
1.5數組賦值
1.在C語言中,不可以將數組直接賦值給另一個數組;
在Java中,語法上允許這樣做,但實際得到的效果是兩個數組引用指向同一塊內存。
int[] a = {2, 4, 6, 8, 10};
int[] b;
ary2 = ary1; //允許這樣賦值
2.示例
public class test1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int [] a=new int [] {1,2,5,4,8,8,9};
int [] b;
b=a;
b[2]=325;
int i=0;
System.out.println("數組a中的元素:");
for(i=0;i<a.length;i++) {
System.out.println(a[i]);
}
System.out.println("數組b中的元素:");
for(i=0;i<b.length;i++) {
System.out.println(b[i]);
}
}
}
2.Java中的運算符
按照功能分,Java中的運算符可以分為四類:
算術運算符
位運算符
比較運算符
邏輯運算符
除了== 及 !=、+外,其他運算符都是針對基本數據類型進行運算,==及!=可以對基本數據類型及引用類型進行運算,+還可以對字符串進行連接操作
重點:++、--、==、!=、&&、||
2.1算術運算符
1.單目:+(取正)-(取負) ++(自增1) - -(自減1)
雙目:+ - * / %(取余)(+還可以連接字符串)
三目:a>b?true:false
說明:當a大於b的時候,為true(也就是冒號之前的值),否則為false;這整個運算符包括一個關系運算符(可以是“>”"<""!="等等),一個“?”,一個“:”,冒號前後需要有兩個表達式或者是值或者是對象.
2.總結
1、單目運算中的++,--的取值順序
2、基本運算符要掌握,尤其是/和%
3、要掌握三目運算符的邏輯過程
2.2位運算符
位運算符:(先轉化成二進制再進行運算)
與(&)、非(~)、或(|)、異或(^)
移位運算符:<<、 >>(有符號右移) 、 >>>(無符號右移)
左移1位相當於乘以2,右移1位相當於除以2,比乘除運算效率更高
2.3比較運算符
比較運算符:
== ,<,>,<=,>=,!=
==與!=比較基本數據類型是比較值,比較引用類型是虛地址
除了== !=外,都只能比較基本數據類型
註意:比較運算符的返回值為true或false
2.4邏輯運算符
1.用於連接兩個boolean類型的表達式
&& (雙與) 、|| (雙或) 、&(與)、|(或)、^(異或)、!(非運算)
2.註意事項
&&與&的運算結果是相同的,對於&而言無論左邊為什麽值,右邊都參與運算;對於&&來說,只要左邊為false右邊就不再運算,直接返回false
||與|的運算結果是相同的,對於|而言無論左邊為什麽值,右邊都參與運算;對於||來說,只要左邊為true右邊就不再運算,直接返回true
&&和||可以理解為物理上的短路,實際中多用&&及||
3.流程控制
Java中的流程:
順序流程
分支流程
循環流程
3.1分支語句if/else
1.條件語句 — if
條件語句 — if…else…
條件語句 — if…else if…
2.條件語句 — if (說明)
條件表達式可以是任何一種邏輯表達式
如果表達式值為true,則執行花括號的內容後,再執行後面的語句
如果表達的值為false,則直接執行後面的語句
如果,大括號只有一條語句,則可以省略大括號(推薦不省略)
if(c==‘+‘) System.out.println(a+b);
3.條件語句 — if…else…
nt x = 2;
if(x=2){
X+=2;
}
else{
X-=2;
}
System.out.println("x="+x);
4.條件語句 — if…else if…
int x = 88;
if(x<60){
System.out.println(“成績不合格”);
}
else if(x>=85){
System.out.println(“成績優秀”);
}
else{
System.out.println(“成級良好”);
}
6.總結
條件語句的三種格式
if語句和三目運算符的關系
if語句中的一些說明
3.2條件語句 — switch
1. 條件語句 — switch
語法格式 — switch
switch (表達式)
{
case 取值1:語句塊1
…
case 取值n:語句塊n
default: 語句塊n+1
}
2.條件語句 — switch(說明)
表達式的值只可以接受int、byte、char、short 型、枚舉,JDK1.6以後String也可以,不接受其他類型的值,不允許有重復的case取值
switch一旦碰到第一次case匹配,程序就會跳轉到這個標簽位置
開始順序執行以後所有的程序代碼,而不管後面的case條件是否匹配,直到碰到break語句為止.
int x = 65;
switch (x) {
case x>90&&X<100:
System.out.println("A");
break;
case X>80&&X<90:
System.out.println("B");
break;
case X>70&&X<80:
System.out.println("C");
break;
default:
System.out.println("垃圾");
}
3.3循環語句for、 while、 do/while
1.循環語句 — while
while (條件表達式)
{
執行語句塊
}
int x=1;
while(x<11){
System.out.println("x="+x);
x++;
}
2.循環語句 — do…while 至少會執行一次循環
語法格式
do
{
執行語句塊;
} while(條件表達式 );
int x=3;
do{
System.out.println("x="+x);
x++;
} while(x<3);
3.循環語句 — for
語法格式
for(初始化表達式;循環條件表達式;循環後的操作表達式)
{
執行語句塊
}
int i=0;
for(i=0;i<a.length;i++) {
System.out.println(a[i]);
4.循環的中斷語句
循環的中斷語句 — break 、continue
中斷語句
多重循環中可以使用標號,指定中斷的具體循環
在使用循環語句時,只有循環條件表達式的值為false時,才能結束循環。有時,我們想提前中斷循環,要實現這一點,只需要在循環語句塊中添加break或continue語句
5.中斷語句 — break
break語句用於終止某個語句塊的執行。用在循環語句體中,可以強行退出循環。
“break;”語句:可以出現在while、do…while、for、switch語句體中。
“break label”語句 :可以出現在任何語句體中。多數還是使用在循環中。
6.中斷語句 — continue
continue語句用在循環語句體中,用於終止某次循環過程,跳過循環體中continue語句下未執行的循環,開始下一次循環過程
“continue;” 語句:只能出現在循環語句while、do…while、for中
7.循環語句 — 死循環
for(int x=1;;x++)
{
System.out.println("x="+x);
}
數組、運算符、流程控制