sql語句之DCL
1.常量
常量是指程式執行期間,內容不可發生改變的量,像10,10.2,“hello”等都是常量
2.變數
變數與常量相反,程式執行期間,可以在一定範圍內發生改變的量就是變數,變數的本質其實就是用來存放資料的一小塊記憶體空間
變數的格式:資料型別 變數名 = 資料值
識別符號的規則:
- 只能由字元、下劃線_和美元符$組成
- 不能以數字開頭s
- 不能是java的關鍵字
常見的識別符號命名規則(軟性建議):
- 見名只其意
- 只使用英語和數字,更不要使用拼音
- 類:每個單詞首字母大寫, 如Hello
- 變數第一個單詞完全小寫後續更多單詞首字母大寫(小駝峰式),如ageOfLuyi
- 方法:與變數規則一樣,如show(),getAge()
- 包:其實就是資料夾,由於對類進行管理,命名建議為全部小寫,多級包用點.隔開
變數的注意事項:
- 建立的多個變數不能重名
- 變數一定要賦值之後才能使用
- 變數的作用域問題:變數定義在哪個大括號中,就只能在哪個大括號中使用,超過所屬的大括號,就無法使用
- 可以在一個語句中同時定義型別相同的多個變數
3.資料型別的分類
基本型別
- 整數型別:byte(佔一個位元組) short(佔2個位元組) int(佔4個位元組) long(佔8個位元組)
- 浮點型別:float(佔4個位元組) double(佔8個位元組)
- 字元型別:char(佔2個位元組)
- 布林型別:boolean(佔1個位元組)
引用型別
- 字串
- 類
- 介面
- 陣列
- Lambda
- ...
注意事項:
- 整數型別預設為int型別
- 浮點數型別預設為double型別
- 定義一個long型資料,在數值後面要用字母L作為字尾(大小寫都可以,推薦使用大寫),如5000L
- 定義一個float型資料,在數值後面要用字母F作為字尾(大小寫都可以,推薦使用大寫),如3.14F
- 字元char型資料,是可以包含中文的
4.運算子
運算子:對常量或變數進行操作的符號,叫做運算子,例如“+”
表示式:用運算子將多個常量或變數連起來的式子,叫做表示式,例如“a+b”
常用的運算子:
-
算數運算子:
-
加號(+) :跟數學中的加法一樣,但是+對於字串來說,並不是相加的意思,而是連線的功能,需要注意優先順序問題
String str5 = "abc" + 10 + 20 //結果為:abc1020 String str5 = "abc" + (10 + 20) //結果為:abc30
-
減號(-)
-
乘號(*)
-
除號(/)這裡的除號是整除,只看商,不看餘數
-
求餘(%):取模運算,取得餘數,只看餘數,不看商
-
自增運算子(++):在變數的原有基礎上加1,可以寫在變數前面,也可以寫在變數後面
- 單獨使用的時候:前++和後++無任何區別
- 如果和其他運算子混合使用時:如果是前++,那麼變數馬上+1,然後拿著結果進行使用,如果是後++,那麼首先使用當前的本來資料,然後再進行+1操作
-
自減運算子(--):在變數的原有基礎上減1
-
計算中如果有小數參與,那麼結果一定是小數
-
-
賦值運算子
- 基本賦值運算子:表示將右側的數值賦給左邊的變數
- 複合賦值運算子:如 a += 3,a *= 4
- =左側不能是常量,右側既可以是常量也可以是變數
-
比較運算子:比較運算子的結果一定是一個布林值,要麼為true,要麼為false
- 大於 >:
- 小於 <:
- 大於等於 >=
- 小於等於 <=
- 不等於 !=
- 等於 ==
-
邏輯運算子:
- 與(&):全為true才為true
- 或(|):有一個true就是true
- 異或(^):相同是true,不同是false
- 非 取反(!):本來true變成false,本來是false變為true
- 短路使用:如果左側已經可以判斷到最終結果,那麼右側將不再執行
- 短路與(&&)
- 短路或(||)
5.Scanner鍵盤輸入
使用引用型別的三個步驟:
-
導包:指定需要使用的目標在什麼位置,在public class之前寫一行程式碼 import 包路徑名
import java.util.Scanner;
-
建立:資料型別 變數名稱 = new 資料型別()
Scanner sc = Scanner(System.in);
-
使用:變數名稱.方法名();
String str = sc.next() int num = sc.nextInt()
總程式碼:
import java.util.Scanner;
public class Sc{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("please input something");
String str = sc.next();
System.out.println(str);
}
}
6.流程
-
順序結構:程式自上而下一條線走下來
-
選擇結構(分支結構):程式並不是一條道走到黑,有了分叉
-
單if語句
if(布林表示式){ 語句體; } //如果布林表示式為true,則執行語句體,否則,不執行;
-
標準if-else語句
if(布林表示式){ 語句體A; }else{ 語句體B; } //如果布林表示式為true,則執行語句體A,否則,執行語句體B;
-
擴充套件if-else語句
if(布林表示式1){ 語句體A; }else if(布林表示式2){ 語句體B; } ... else if(布林表示式N){ 語句體N }else{ 語句體N+1 }
-
例子:求兩個數的最大值
import java.util.Scanner;
public class MaxNumber{
public static void main(String[] arg){
Scanner sc = new Scanner(System.in);
System.out.println("please the num1: ");
int num1 = sc.nextInt();
System.out.println("please the num2: ");
int num2 = sc.nextInt();
if(num1 > num2){
System.out.println("the max number is" + num1);
}else{
System.out.println("the max number is" + num2);
}
}
}
- 迴圈結構
迴圈結構的組成部分
- 初始化語句:這部分內容最先執行,而且僅執行一次;
- 條件判斷:如果成立,則迴圈繼續,如果不成立,則迴圈中止;
- 迴圈體:每次迴圈都將重複執行迴圈體的程式碼內容;
- 步進語句:每次迴圈執行後,都會執行一次步進語句;
for 迴圈:通常用於控制次數的場景
for(初始化語句;條件判斷,步進語句){
迴圈體;
}
例子:求出1-100的偶數和
public class EvenNumber{
public static void main(String[] arg){
int sum = 0;
for(int i = 1; i < 101; i ++){
if(i % 2 == 0){
sum += i;
}
}
System.out.println("the sum is: " + sum);
}
}
whlie迴圈:
標準模式:
while(條件判斷){
迴圈體;
}
//當條件滿足時執行迴圈體,不滿足則跳出迴圈體
擴充套件模式:
初始化語句;
while(條件判斷){
迴圈體;
步進語句;
}
例子:求1-100的奇數和
public class OddNumber{
public static void main(String[] arg){
int sum = 0;
int i = 1;
while( i < 101){
if(i % 2 == 1){
sum += i;
}
i ++;
}
System.out.println("the sum is: " + sum);
}
}
for迴圈與while迴圈的區別:for迴圈的步進語句還能接著走,而whlie的步進語句由於continue跳出了迴圈,導致剩餘內容的步進語句也沒被跳過
public class ContinueDemo{
public static void main(String[] arg){
for(int i = 1; i < 10; i ++){
if(i == 4){
continue;
}
System.out.println(i);
}
System.out.println("=====================");
int i = 1;
while(i < 10){
if(i == 4){
continue;
}
System.out.println(i);
i ++;
}
}
}
//輸出結果為:
1
2
3
5
6
7
8
9
=====================
1
2
3
- for迴圈格式固定,控制次數更方便,而while迴圈格式更加靈活,不在意迴圈次數,迴圈次數確定的使用for較多,次數不確定,使用while較多
- for迴圈小括號內定義的變數,迴圈內可用,迴圈外不可用,while迴圈的初始化表示式本來就在外面,仍然可用
- 跳轉語句continue的效果不同:
跳轉控制語句:
- break語句:跳出迴圈
- continue語句:只跳出本次迴圈,後續還要繼續迴圈
死迴圈(永真迴圈):
這兩種方法可以實現死迴圈
while(true){
}
for(;