Java面向過程的編程
一.注釋及注釋的使用
3.文檔注釋(java特有的) 格式:/** */ 注釋內容可以被JDK提供的工具Javadoc所解析,生成一套以網頁文件形式體現的該程序的說明文檔 .
4.多行注釋不能嵌套使用
二.java基礎知識點
2.1 關鍵字與保留字
關鍵字:
定義:被java語言賦予了特殊含義,用作專門用途的字符串
特點:關鍵字中所有的字母都為小寫
保留字:
現有的Java版本尚未使用,但以后的版本可能會作為關鍵字使用。必須避開命名 goto,const
2.2 標識符
標識符:Java對各種變量,方法和類等要素命名時使用的字符序列稱為標識符
通俗點講:凡是可以自己命名的地方都叫標識符。
2.3變量
變量:
-
內存中的一個存儲區域
-
該區域的數據可以在同一類型范圍內不斷變化
-
變量是程序中最近基本的存儲單元,包含變量類型,變量名和存儲的值
作用:用于在內存中保存數據
注意:
-
java中的每個變量需先聲明,后使用
-
使用變量名來訪問這塊區域的數據
-
變量的作用域:其定義所在的一對()內
-
變量只有在其作用域內才有效
-
同一個作用域內,不能定義重名的變量
數據類型:
整數類型
-
整型 int 如int a;
-
long型 如long a;long b=56000L,c=280L;
-
byte型 byte沒有常量的表示方法。變量的定義格式:byte 變量名[=值]
-
short型 short沒有常量的表示方法。變量的定義格式:short 變量名[=值]
浮點類型
-
float型 32位單精度
-
double型 64位雙精度
布爾數據類型
邏輯值 ture / false 格式:boolean 變量名[=值] boolean a; a = false ; boolean b=ture;
字符型
char char 變量名[=值]; char a='b'; char b='中' ,c='x';
轉義字符
-
\ \ 表示反斜杠;
-
\r 表示回車;
-
\n表示換行;
-
\f表示走紙換頁;
-
\t表示橫向跳格;
-
\b表示退格。
2.4運算符
運算符的種類:
-
賦值運算符
-
簡單賦值運算符
int a =100 ;
int b=a+10;
-
復合賦值運算符
| 運算符 | 用法 | 等價于 |
|---|---|---|
| += | op1+=op2 | op1=op1+op2 |
| -= | op1-=op2 | op1=op1-op2 |
| *= | op1*=op2 | op1=op1*op2 |
| /= | op1/=op2 | op1=op1/op2 |
| %= | op1*=op1%op2 | op1=op1%op2 |
-
算數運算符
-
一元運算符 :+ - ++ --
-
二元運算符 : + - * / %
int a=10,b=4; System.out.ptintln("a%b="+a%b);
-
關系運算符
比較大小關系的二元運算符,大于,等于,不等于返回值為布爾值。
int a=3,b=5; boolean c=(a>b);
注意等于運算符(==)不要與賦值運算符(=)混淆。
-
邏輯運算符
| 運算符 | 實際操作 | 范例 |
|---|---|---|
| ! | 非 | !a |
| & | 與 | a&b |
| | | 或 | a|b |
| ^ | 異或 | a^b |
| && | 短路與 | a&&b |
| || | 短路或 | a||b |
-
條件運算符
條件運算符是三元運算符,格式如下:
布爾表達式 ?表達式1 :表達式2
例如:
public class ConditionDemo{ public static void main(String[] agrs){ int scorel=68,score2=59; String result1=scorel1>=60?"pass":"down"; String result2=scorel2>=60?"pass":"down" } }
-
位運算符
同二進制運算一樣,如下表
| 運算符 | 名稱 | 舉例 | 功能 |
|---|---|---|---|
| ~ | 按位取反 | ~a | a的每位二進制取反 |
| & | 與 | a&b | 對應位與運算 |
| | | 或 | a|b | 對應位或運算 |
| ^ | 異或 | a^b | 對應位異或運算 |
| << | 左移 | a<<b | 對a左移b位,低位用0補(右補0) |
| >> | 右移 | a>>b | 對a右移b位,高位用原高位補充(左補原符號位) |
| >>> | 邏輯右移 | a>>>b | 對a右移b位,高位用0填充(左補0) |
public class BitDemo{ public static void main(string[] args){ int a=123 ,b=198; System.out.println("a & b ="+ (a&b)+";"+ "a | b ="+ (a|b)); System.out.println("a ^ b ="+ (a&b)+";"+ "~a =" +(~a)); System.out.println("a << 2="+ (a<<2)+";"+ "a >> 2 ="+ (a>>2)); } }
2.5流程控制控制語句
-
順序語句,如下代碼:
public class OrderDemo{ public static void main(string[] args){ int x=125 ,y=5, z=0; z=x/y; System.out.println("z="+z); } }
結果為25,可見代碼按照從上到下,從左到右依次執行。
-
條件語句
-
if語句
if(布爾表達式){ 語句塊 1 } eg: if(sorce>=60){ System.out.println("pass"); }
若if只有一個語句,可以不加{}。
if-else語句
if(布爾表達式){ // 語句組1 }else{ // 語句組2 }
eg:判斷物理成績合格
import java.unil.Scanner; public class ScoreLevel{ public static void main(string[] agrs){ Scanner sc=new Scanner(System.in); System.out.println("plass take you physics number"); int physics=sc.naxtInt(); if (physics >= 60) System.out,println("pass"); }else{ System.out.println("down"); } }
if-else if:多重if-else結構
if(布爾表達式1){ 語句塊1 }else if(表達式2){ 語句塊2 }else{ 語句塊3 }
-
switch語句
switch是多選一的語句,可以替代多個if else語句
switch(表達式){ case 常量1; 語句1; break; ... case 常量n; 語句塊n; break; default: 語句; break; }
-
循環語句
while循環語句 while (循環條件){ 循環體 }
eg:求1~10000的和
pubilc class Getsum{ public static void main(String[] args){ int x =1; int sum=0; whilc(x<10000){ sum += x; x++; } System.out.println(sum); } }
do while語句
do{ //循環體 }while(循環條件);
while 與 do while的區別
public class cycle{ public static void main(String[] args){ int a=1 ,b=1; //while 循環,先判斷后循環。 while(a<1){ a++; } //do while 先循環后判斷。 do{ b++; }while(b<1) System.out.println("a ="+a+",b="+b); } } //運行結果 : a =1 ; b =2
for循環語句
for(表達式1,表達式2,表達式3){ //循環體 } eg:用for循環求10以內的所有偶數的乘積。 public class CirculateFor{ public static void main(String[] args){ int sum=1; for(i = 2;i<=10;i+=2){ sum *=i; } System.out.println(sum); } } 結果:3840
-
跳轉語句。
break語句
break;//終止break所在的循環,轉去執行當前循環后的第一條語句。
continue語句
continue;//continue語句在while,for或者do...while結構中執行時跳過該循環體的剩余代碼,循環體的條件測試部分進入下一輪循環
eg:輸出100以內的奇數 public class ContinueDemo{ public static void main(String[] args){ int i=0; while(i<100){ i++; if(i%2 == 0){ continue; } System.out.println(i +" "); } } }
return語句
return 表達式; public String toString(){ return "中華人民共和國萬歲"; }
//關于循環語句的幾個練習: //1.九九乘法表 //2.100以內質數
//1.九九乘法表 class NNTest{ public static void main(string[] args){ int i , j; //定義變量i ,j int a; // 定義積 for(i=1;1<10,i++){ //外循環 從一開始到九 for(j=1,j<10,j++){ // 內循環從一開始到就 a = i*j; System.out.println(i+"*"j"="+a "\t"); } } }//不標準的九九乘法表,重復使用i ,j的值。 //更正: class NNtest{ public static void main(String[] args){ int i,j; for(i=1;i<10;i++){ for(j=1;j<=i;j++){ //重點在這,i ,j 不能重復使用。 System.out.println(j+"*" + i + "=" + j*i+ "\t"); } System.out.println(); } } }
2.100以內質數。
class PrimeNumberTest{ public static void main(String[] args){ int i, j ; // 定義變量 boolean k = true ; //確定一個布爾值k,用來判斷i是否被j除盡,一旦除盡,修改其值。 for(i=2;i<=100;i++){ //遍歷100以內的數 for(j=2;j<i;j++){ //再次遍歷小于i的數 if(i % j ==0){ //用小數j 去除j k = false; //如果除盡了,返回值為false } } if( k == true){ //如果沒除盡返回true System.out.println(i); //輸出沒有被j除盡的數也就是質數 } k =true; //重置k } } }
優化代碼:
class PrimeNumberTest{ public static void main(String[] args){ int i, j ; // 定義變量 boolean k = true ; //確定一個布爾值k,用來判斷i是否被j除盡,一旦除盡,修改其值。 for(i=2;i<=100;i++){ //遍歷100以內的數 for(j=2;j<i;j++){ //再次遍歷小于i的數 優化2:Math.sqrt(i) :根號i,對本身是自然數,優化程序進程。 if(i % j ==0){ //用小數j 去除j k = false; //如果除盡了,返回值為false break; // 優化一 節省非質數的對j的取余數。 } } if( k == true){ //如果沒除盡返回true System.out.println(i); //輸出沒有被j除盡的數也就是質數 } k =true; //重置k } } }
//利用long start = System.currentTimeMillis();
//long start = System.currentTimeMillis();來計算程序運行的時間。
//利用continue進行最后的優化:代碼如下:
class primeNumberTest2{
public static void main(String[] args){
label:for(i=2;i<=100;i++){
for(j=2;j<Math.sqrt(i);j++){
if( i % j==0)
continue label;
}
}
System.out.println("質數為"+I);
}
}
浙公網安備 33010602011771號