—————————— ASP.Net+Android+IOS開發、.Net培訓、期待與您交流!——————————
/*
測試1 變量的定義
*/
class Demo1
{
public static void main(String[] args)
{
//數據類型 變量名 = 初始化值
byte b=5;
short s=5;
int i=5;
long l=5l;
float f=5.5f;
double d=5.21;
boolean bool=true;
char c='\n';
}
}
什麼時候定義變量?
當數據不確定的時候,需要對數據進行存儲時,就定義一個變量來完成存儲動作.
類型轉換:
1.自動類型轉換:小的向大提升
2.強制類型轉換:大的向小的轉換
算術運算符
+ - * / % ++ --
整數/整數=整數
被模數小於模數,結果是被模數 例如:2%5=2
小考點: 1%-5=1 -1%5=-1;
i++ ++i的區別:
i++:先賦值在運算
++i:先運算在賦值
轉義字符: 通過\來轉變後面的字母或符號的含義
常用:
1. \n 換行
2.\b 退格
3.\r 按下回車鍵
4.\t 製表符(相當於tab)
賦值運算符:
= += -= \= *= %=
比較運算符:
== > < >= <= !=
邏輯運算符:
& | ^ && || !
邏輯運算符用於連接boolean類型的表達式
&特點:
兩邊真,則真
兩邊假,則假
一邊真,則假
|特點:
兩邊真,則真,
一邊真,則真
兩邊假,則假
^特點:
兩邊真(假),則假
一邊真,一邊假,則真
!特點:
!真=假
!假=真
&&,||(短路) 同理
&和&&的特點:
&:兩邊都參與運算
&&:左邊是假,右邊不運算
|和||的特點:
|:兩邊都參與運算
||:左邊爲真,右邊就不運算
位運算(二進制運算):
<< 左移
>> 右移
>>> 無符號右移
& 與
| 或
! 非
~ 反碼
>> 其實就是除以2的位數次冪
<< 其實就是乘以2的移動位數次冪
>> << 拿最高位補
>>> 都拿0補
反碼: 其實就是取反
異或小應用: 一個數異或同一個數兩次等於本身
/*變量交換*/
class Demo3
{
public static void main(String[] args)
{
int x=10,y=11;
//第一種 無需第三方變量
/*有侷限性(x+y)不能超過int的取值範圍
System.out.println("交換前 x= "+x+",y= "+y);
x=x+y;
y=x-y;
x=x-y;
System.out.println("交換後 x= "+x+",y= "+y);
*/
//第二種 需要臨時變量
/*
System.out.println("交換前 x= "+x+",y= "+y);
int temp=x;
x=y;
y=temp;
System.out.println("交換後 x= "+x+",y= "+y);
*/
//第三種 無需第三方變量
System.out.println("交換前 x= "+x+",y= "+y);
x=x^y;
y=y^x;
x=x^y;
System.out.println("交換後 x= "+x+",y= "+y);
}
}
注意:位運算高效率
練習:
/*
位運算
*/
class Demo2
{
public static void main(String[] args)
{
//2進制轉16進制
int n=60&15; //獲取最低四位
if(n>9)
System.out.println((char)getChar(n));
else
System.out.println(n);
n=60>>>4; //向右移動四位
if(n>9)
System.out.println((char)getChar(n));
else
System.out.println(n);
}
/*根據接受的值返回*/
public static int getChar(int n){
if(n==10)
return 'a';
else if(n==11)
return 'b';
else if(n==12)
return 'c';
else if(n==13)
return 'd';
else if(n==14)
return 'e';
else if(n==15)
return 'f';
return n;
}
}
三元運算符:
運算符一定有結果: 變量=(表達式)?真:假;
例子:
/*
三元例子
*/
class Demo5
{
public static void main(String[] args)
{
int n=1;
System.out.println(n>1?88:66);
//意思是n>1嗎? 大於返回88, 否則就是小於,返回66;
}
}
好處:可以簡化if else代碼
弊端:因爲是一個運算符,所以必須有結果
程序流程控制:
1.判斷結構
if(條件表達式){執行語句;}
if(條件表達式1){
執行語句1;
}else{
執行語句2;
}
if(條件表達式1){
執行語句1;
}else if(條件表達式2){
執行語句2;
}else{
執行語句3;
}
練習代碼如下:
/*
使用if 跟switch完成練習
*/
class Demo4
{
public static void main(String[] args)
{
//根據用戶輸入int判斷星期幾
int d=0;
if(d < 1 || d > 7)
System.out.println("沒有這個星期");
else if(d==1){
System.out.println("星期一");
}else if(d==2){
System.out.println("星期二");
}else if(d==3){
System.out.println("星期三");
}else if(d==4){
System.out.println("星期四");
}else if(d==5){
System.out.println("星期五");
}else if(d==6){
System.out.println("星期六");
}else {
System.out.println("星期天");
}
//使用switch 根據輸入月份判斷季節
switch(d){
case 3:
case 4:
case 5:
System.out.println("春季");
break;
case 6:
case 7:
case 8:
System.out.println("夏季");
break;
case 9:
case 10:
case 11:
System.out.println("秋季");
break;
case 12:
case 1:
case 2:
System.out.println("冬季");
break;
default:
System.out.println("你們那裏有這個月份麼?");
break;
}
}
}
選擇結構:
switch(表達式){
case 值1: 執行語句; break;
case 值2; 執行語句;break;
default: 執行語句; break;
}
switch特點:
1.被選擇表達式只能接收byte short int char
2.case可以沒有順序,但執行時是有順序的
開發選擇哪個合適呢?
如果是對具體數值判斷,具體值不多,如何byte short int char 首選switch,效率稍高
如果是布爾,區間,首選if
—————————— ASP.Net+Android+IOS開發、.Net培訓、期待與您交流!——————————