1. 程式人生 > >Java基礎2——基本程式設計

Java基礎2——基本程式設計

1、控制檯輸入輸出

(1)輸入

import java.util.Scanner; //或import java.util.*;從java.util包匯入Scanner類

    Scanner input=new Scanner(System.in); //宣告一個Scanner型別的變數,建立一個物件

    double radius=input.nextDouble(); //呼叫物件的方法

其中next方法包括nextByte()、nextShort()、nextInt()、nextLong()、nextFloat()、nextDouble()、next()、nextLine()等。

(2)輸出

    System.out

.println();//顯示完字串後,將游標移至下一行

    System.out.print();//顯示完字串後,不會將游標移至下一行

    System.out.printf(“countis %d,amount is %f”,count,amount);//格式化輸出,輸出寬度不足10,在前面加空格(如果%後面有0則補0),多於10則自動增加寬度。在%後面加-,則左對齊。%後面加,千位分隔符。%n與平臺無關的換行。要在格式字串裡輸出字面量%,則需輸入%%。printf直接呼叫了format,與System.out.format用法相同。

格式資料型別
%10d十進位制整數
%10.2f浮點數
%10.2e科學計數法
%10c字元
%10b布林值
%10s字串

2、識別符號、變數和常量

識別符號是由字母、數字、下劃線(_)和美元符號($)構成的字元序列,不能以數字開頭,不能是保留字、true、false或null。區分大小寫。避免採用縮寫,用完整的詞彙更有描述性。

類名每個單詞的首字母大寫XxxYyyZzz;變數名和方法名使用小寫字母開頭xxxYyyZzz;包名所有字母小寫xxxyyyzzz。大寫常量中所有字母,兩個單詞間用下劃線連線XXX_YYY。

變數指在程式中可能被改變的值,宣告和賦初值儘可能一步完成;常量指在其生存期內值不可改變的量,最好在同一條語句中宣告和賦初值,且只能賦值一次。常量可以是整數、小數、布林型、字元、字串、null等形式。

    datatype variableName=value;

    final datatype CONSTANT_NAME=value;

3、基本資料型別

大類

型別

預設值

位數

範圍

整型

byte

0

8

-128~127

short

0

16

-32,768~32,767

int

0

32

-2,147,483,648~2,147,483,647

long

0

64

-9,223,372,036,854,775,808

~9,223,372,036,854,775,807

浮點型

float

0.0

32

負數-3.4E+38~-1.4E-45

正數1.4E-45~3.4E+38

double

0.0

64

負數-1.7E+308~-4.9E-324

正數4.9E-324~1.7E+308

字元型

char

16

單個字元或轉義序列

布林型

boolean

false

1

1(ture)  0(false)

(1)字元型

字元型字面量包括單個字元或轉義序列,用單引號括住。

一個字元在計算機中以0和1構成的序列來儲存,把字元對映到它的二進位制形式的過程稱為編碼。Unicode碼是其中的一種編碼方案,它支援使用世界各種語言所書寫的文字的交換、處理和顯示。一個16位的Unicode碼產生65536個字元,用以\u開頭的4位十六進位制數表示,範圍從’\u0000’到’\uFFFF’。其中從’\u0000’到’\u007F’對應128個ASCII字元。

字元ASCII十進位制編碼值
‘0’~’9’48~57
‘A’~’Z’65~90
‘a’~’z’97~122
轉義序列名稱
\b退格
\t水平製表符
\n換行符
\f換頁符
\r回車符
\\反斜槓
\"雙引號
\'單引號

兩個字元可以使用關係操作符進行比較。

Character類中的方法:isDigit(ch)、isLetter(ch)、isLetterOrDigit(ch)、isLowerCase(ch)、isUpperCase(ch)、toLowerCase(ch)、toUpperCase(ch)。

(2)數值型字面量      

整型字面量預設為int型,可以賦給byte、short、int、long型。如果表示long型字面量,在數字後面加L,如果數字太長,可以在中間加下劃線。整型字面量預設為十進位制正數;以0b或0B開頭,表示二進位制字面量;以0開頭,表示八進位制字面量;以0x或0X開頭,表示十六進位制字面量。

浮點型字面量預設為double型,也可以在小數後面加d或D。如果要將小數賦給float型別的變數,需要在小數後面加f或F。浮點數還可以用e或E表示。

(3)數值型別轉換

數值型別轉換,包括賦值轉換、方法呼叫轉換和字串轉換(+)。擴充套件轉換,有時不損失精度,有時損失精度(int->float),可以自動完成;窄化轉換,可能丟失資訊,必須顯式轉換。short和char都是16位,但依然需要強轉。強制轉換優先順序較高,僅對它緊跟的部分有效。

4、運算子

(1)算術、賦值運算子

加(+)、減(-)、乘(*)、除(/)、求餘(%),均是二元操作符,+-還是一元操作符。當被除數是負數時,餘數才是負數。其中(+)也被稱為字串連線符,字串和任何資料使用+相連線,都變成字串。例:"5+5"+5+5=>5+555;"5+5"+(5+5)=>5+510;'a'+1=>98;"a"+1=>a1。如果有任何運算單元的長度超過int,那麼運算結果就按照最長的長度計算;如果任何運算單元的長度都不超過int,那麼運算結果就按照int來計算。

自增(++)、自減(--),有時前置與後置結果不同,避免在同一個表示式中使用多個自增自減運算子。

賦值(=)、增強賦值(+=)(-=)(*=)(/=)(%=)。

(3)關係運算符

(<)(<=)(>)(>=)(==)(!=)。

(4)邏輯運算子

非(!)、與(&&)、或(||)、異或(^)。

(5)條件運算子

布林表示式?表示式1:表示式2;唯一的三元運算子。

(6)位運算子

通過Integer.toBinaryString()方法,將一個十進位制整數轉換為一個二進位制字串。

位與(&)、位或(|)、位與或(^)、求反(~);左移位(<<)右邊空出來的補0;帶符號位右移位(>>)最高位補上符號位,無符號位右移位(>>>)左邊空出來的補0。

位操作符僅適用於四種整數型別。位操作涉及的字元轉換為整數。所有的位操作符都可以構成位賦值操作符。

一個數異或同一個數兩次,結果是第一個數,可用於加密。

移N位即乘或除2的N次冪,除非超出整數範圍。

練習1:最有效計算2*8,2<<3;

練習2:對兩個整數變數的值進行互換,n=n^m; m=n^m; n=n^m;;

練習3:獲取一個數的十六進位制表現形式,60&15=12,temp=60>>>4,temp&15=3。

(7)運算子優先順序和結合規則

除了賦值運算子,所有的二元運算子都是左結合。

操作符

優先順序

++、--

後置操作符

最高階

最低階

+、-、++、--

一元加號減號、前置操作符

(type)

型別轉換

!

*、/、%

算術運算子

+、-

<、<=、>、>=

關係運算符

==、!=

^

邏輯運算子

&&

||

=、+=、-=、*=、/=、%=

賦值運算子

5、選擇

單分支if語句、雙分支if-else語句、巢狀if語句、多分支if-else語句。

注意:

(1)最好不省略花括號,在同一個塊中,else和離它最近的if匹配

(2)直接測試布林變數,不使用==或!=;

(3)簡化布林變數賦值,eg:booleaneven=number%2==0;;

(4)比較兩個浮點數值是否相等,final double EPSILON=1E-14,求絕對值<EPSILON,float設定為1E-7。

switch語句:當switch表示式的值與case語句的值匹配時,執行從該case開始的語句,直到遇到break語句或switch語句結束。switch表示式必須能計算出char、byte、short、int、enum或String型值。

switch(switch表示式){
case 值1:語句(組)1
    	break;//可選
    case 值2:語句(組)2
		break;
   	...
   	case 值N:語句(組)N
		break;
    default:其它情況執行的語句(組)//可選
}

6、迴圈

(1)迴圈

while(迴圈繼續條件){}

do{}while(迴圈繼續條件);

for(初始操作;迴圈繼續條件;更新計數器){}如果迴圈控制變數只在迴圈體使用,就在初始操作中宣告;如果省略迴圈繼續條件,預設為true,最好不要省略;最好使用整數計數器。

for(型別 該型別變數:陣列物件名){}增強for迴圈,不使用下標變數就可以對陣列或集合物件進行遍歷。

(2)break和continue

break:switch語句;終止break所在的最內層迴圈;跳出所指定的程式碼塊。

continue:結束當前迭代,程式控制轉向該迴圈體末尾。

7、常用數學函式

Java在Math類中提供了許多實用方法,來計算常用的數學函式。Math類在java.lang包中,該包中所有類隱式匯入。

double常量:Math.PI和Math.E。

三角函式:sin(radians)、cos(radians)、tan(radians)、asin(a)、acos(a)、atan(a),均以弧度計。toRadians(degree)、toDegrees(radians),角度與弧度相互轉換。

指數函式方法:exp(x)、log(x)(自然底數)、log10(x)、pow(a,b)、sqrt(x)。

取整方法:ceil(x)、floor(x)、rint(x)、round(x)。

abs(x)方法返回一個數(int、long、float、double型)的絕對值。

random()方法生成大於等於0.0且小於1.0的double型隨機數。