1.變量聲明規則
//1.定義一個類,類名叫 VariableDemo02
public class VariableDemo02 {
//2.定義main方法,作為主程序入口
public static void main(String[] args) {
//3.變量未賦值,不能使用
int a;
//a =20;
System.out.println(a);//程序會報錯
{
//大括號包裹起來的代碼叫做代碼塊
//作用:讓變量盡可能早的從內存消失,節約資源,提高效率
//高級編程語言的時候, GC 垃圾回收機制
double d = 22.22;
System.out.println(d);
}
//4.此行代碼會報錯變量d 從內存已經消失,無法訪問
System.out.println(d);
//5.變量可以一行聲明多個
int e = 10, f= 20, h= 50;
System.out.println(e);
}
}
2.標識符: 給類、接口、方法、變量等起名字的規范
- java中,字母、數字、下劃線、美元符號組成
- python中,C 字母、數字、下劃線組成
- 標識符不能以數字開頭
- 不能喝和Java中的關鍵字(保留字)重名
- 最好做到 見到名字知道他的含義,讓別人看的懂 name= "張珊";
1、類 --》大駝峰(每個單詞首字母都大寫,其他全部小寫)
比如VariableDemo01,HelloWord
2、 變量--》 小駝峰 (從第二個單詞開始,首字母大寫,其余都小寫)
例如,studetName , userName
3、常量 --》 所有字母全都大寫,單詞之間用下劃線
MAX_MONEY
4、包的命名規范,所有的字母都小寫,多級包之間使用"."隔開,
一般包名都是你公司域名的反寫
www.neusoft.com --> com.neusoft.yiliao
5、方法命名 —--》 小駝峰
public static void getAge(){
// 方法名用小駝峰//
3.數據類型轉換
// 如果數據類型不一致,需要進行數據類型轉換
// 1、自動類型轉換, 也叫隱式轉換
// 是指 小類型自動提升為大類型
// 將取值范圍小的類型自動提升為取值范圍大的類型
public static void main(String[] args) {
// 定義兩個int類型的變量a和b, 分別賦值為10, 20
int a = 10;
int b = 20;
// 通過輸出語句打印變量a和b的和.
System.out.println(a+b);
// 讓int類型的變量c, 接收變量a和b的和.
int c = a + b;
// 打印變量c的值.
System.out.println(c);
System.out.println("********************************");
// 定義兩個變量aa和bb, 一個是int類型的數據, 另一個是byte類型的數據.
int aa =30;
byte bb = 40;
// 定義變量cc接收 變量aa和bb的和.
int cc = aa + bb;
byte cc = aa + bb;
// 分別設置變量cc的數據類型為byte類型和int類型, 觀察結果并打印.
System.out.println(cc);
// 2、 強制類型轉換, 顯示轉換 大類型--》 小類型
double d = 30.5;
// 數據類型 變量名 = (強制轉換的類型) 要被轉換的數值
int dd = (int) d;
System.out.println(dd);
4. IDEA常用快捷鍵
快捷鍵 | 功能 |
---|---|
Alt+Enter |
導入包,自動修正代碼 |
Ctrl+Y |
刪除光標所在行 |
Ctrl+D |
復制光標所在行的內容,插入光標位置下面 |
Ctrl+Alt+L |
格式化代碼 |
Ctrl+/ |
單行注釋 |
Ctrl+Shift+/ |
選中代碼注釋,多行注釋,再按取消注釋 |
Alt+Shift+上下箭頭 |
移動當前代碼行 |
5.ASCII表中常用幾個
字符 | 數值 |
---|---|
0 | 48 |
a | 97 |
A | 65 |
z | 122 |
Z | 90 |
9 | 57 |
6.運算符
1.賦值運算符
符號 | 作用 | 說明 |
---|---|---|
= | 賦值 | a=10,將10賦值給變量a |
+= | 加后賦值 | a+=b,將a+b的值給a |
-= | 減后賦值 | a-=b,將a-b的值給a |
*= | 乘后賦值 | a*=b,將a×b的值給a |
/= | 除后賦值 | a/=b,將a÷b的商給a |
%= | 取余后賦值 | a%=b,將a÷b的余數給a |
2.關系運算符
符號 | 說明 |
---|---|
== | a==b,判斷a和b的值是否相等,成立為true,不成立為false |
!= | a!=b,判斷a和b的值是否不相等,成立為true,不成立為false |
> | a>b,判斷a是否大于b,成立為true,不成立為false |
>= | a>=b,判斷a是否大于等于b,成立為true,不成false |
< | a<b,判斷a是否小于b,成立為true,不成立為false |
<= | a<=b,判斷a是否小于等于b,成立為true,不成立為false |
3.邏輯運算符
注意: 假設下表中的a和b, 都是boolean類型的值.
符號 | 作用 | 說明 |
---|---|---|
& | 邏輯與 | a&b,并且的意思. 有false則整體為false, 都為true, 則整體為true. |
l | 邏輯或 | b,或者的意思, 有true則整體為true, 都為false, 則整體為false |
! | 邏輯非 | !a,取反的意思, 以前為true, 取反后為false, 以前為false, 取反后為true. |
^ | 邏輯異或 | a^b,異同的意思, 相同為false, 不同為true |
.
- 自增運算
- a++,先進行賦值,再進行自增
public static void main(String[] args) {
int a = 1;
int b = a++;
System.out.println(a++);a++ = 1
System.out.println(a); // a=2
System.out.println(b); // b=1
}
- ++a 先進行自增, 然后在進行賦值
public static void main(String[] args) {
int a = 1;
int b = ++a;
System.out.println(++a);++a = 3
System.out.println(a); // a=2
System.out.println(b); // b=2
}
流程控制
概述:在一個程序執行的過程中,各條語句的執行順序對程序的結果是有直接影響的。所以,我們必須清楚每條語句的執行流程。而且,很多時候要通過控制語句的執行順序來實現我們想要的功能。
例如: 某些代碼是滿足特定條件的情況下, 才會被執行. 而有些代碼, 在滿足某些條件的情況下, 需要重復執行, 這些, 都需要用到流程控制語句.
分類
7.順序結構
概述:順序結構指的是代碼是按照從上往下, 從左往右的順序, 依次逐行執行的, 且順序結構也是Java程序的默認結構.
- 定義類OrderDemo01, 在類中定義main方法, 打印如下數據:
start
HelloWorld1
HelloWorld2
HelloWorld3
end
public class OrderDemo01 {
public static void main(String[] args) {
//打印指定的數據
System.out.println("start");
System.out.println("HelloWorld1");
System.out.println("HelloWorld2");
System.out.println("HelloWorld13");
System.out.println("end");
}
}
8.順序結構
1.if語句
- 單分支(
判斷一種情況
)
執行流程:
1.先執行關系表達式, 看其結果是true還是false.
2.如果是true, 則執行大括號中的語句體.
3.如果是false, 則大括號中的語句體不執行.
格式:
if(要判斷的條件){
滿足條件時要執行的事情
}
定義變量time表示時間, 如果它的范圍是在[11,13]之間, 就打印吃中午飯
, 否則不操作
public class Demo06 {
public static void main(String[] args) {
// 定義一個時間變量 time
int time = 10;
if(time >=11 && time <= 13) {
System.out.println("吃中午飯");
}
}
}
- 雙分支(
判斷兩種情況
)
執行流程:
1.先執行關系表達式, 看其結果是true還是false.
2.如果是true, 則執行語句體1.
3.如果是false, 則執行語句體2.
格式:
if(要判斷的條件){
滿足條件時要執行的事情
}else {
不滿足條件時要執行的事情
}
定義變量time表示時間, 如果它的范圍是在11~13之間, 就打印早上好
, 否則就打印中午好
public class IfDemo02 {
public static void main(String[] args) {
int time = ;
if(time >= 11 && time <= 13) {
System.out.println("早上好");
} else {
System.out.println("中午好");
}
}
}
判斷奇偶數:提示用戶鍵盤錄入一個數據并接收;判斷該數據是奇數還是偶數, 并將結果打印到控制臺上.
public class IfDemo03 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("請錄入一個整數: ");
int num = sc.nextInt();
if (num % 2 == 0) {
System.out.println(num + "是偶數");
} else {
System.out.println(num + "是奇數");
}
}
}
- 多分支(
判斷多種情況
)
執行流程:
1.先執行關系表達式1, 看其結果是true還是false.
2.如果是true, 則執行語句體1, 整個if語句結束.
3.如果是false, 則判斷關系表達式2, 看其結果是true還是false.
4.如果是true, 則執行語句體2, 整個if語句結束.
5.如果是false, 則判斷關系表達式3, ...以此類推.
6.如果所有的關系表達式都不成立, 則執行else語句的語句體n, 整個if語句
結束.
格式:
f(關系表達式1) {
//語句體1;
} else if(關系表達式2){
//語句體2;
} else if(關系表達式3){ //這里可以根據需求, 有多個else if語句
//語句體3;
} else {
//語句體n;
}
提示用戶錄入[1, 7]之間的數字, 并接收.根據用戶錄入的數字, 打印對應的星期, 格式如下:用戶錄入1, 打印"星期一";用戶錄入2, 打印"星期二"...以此類推:用戶錄入非法數字, 打印"沒有這樣的日
public class IfDemo04 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("請錄入一個1 - 7之間的整數: ");
int week = sc.nextInt();
if (week == 1) {
System.out.println("星期一");
} else if(week == 2) {
System.out.println("星期二");
} else if(week == 3) {
System.out.println("星期三");
} else if(week == 4) {
System.out.println("星期四");
} else if(week == 5) {
System.out.println("星期五");
} else if(week == 6) {
System.out.println("星期六");
} else if(week == 7) {
System.out.println("星期日");
} else {
System.out.println("沒有這樣的日期");
}
}
小明快要期末考試了,小明爸爸對他說,會根據他的考試成績,送他不同的禮物.
假如你可以控制小明的得分,請用程序實現小明到底該獲得什么樣的禮物,并在控制臺輸出。
禮物標準如下:
95~100 山地自行車一輛
90~94 游樂場玩一次
80~89 變形金剛玩具一個
80以下 胖揍一頓
public class IfDemo05 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("請錄入小明的考試成績: ");
int score = sc.nextInt();
if (score >= 95 && score <= 100) {
System.out.println("獎勵小明: 山地自行車一輛");
} else if(score >= 90 && score < 95) {
System.out.println("獎勵小明: 游樂場玩兒一次");
} else if(score >= 80 && score < 90) {
System.out.println("獎勵小明: 變形金剛玩具一個");
} else if(score >= 0 && score < 80){
System.out.println("獎勵小明: 男女雙混組合拳 + 掃帚棒法");
} else {
System.out.println("考試成績錄入有誤.");
}
}
}
提示用戶錄入3個整數, 并接收.通過if語句獲取這三個整數的最大值.將結果打印到控制臺上.
public class IfDemo06 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("請錄入第一個整數: ");
int a = sc.nextInt();
System.out.println("請錄入第二個整數: ");
int b = sc.nextInt();
System.out.println("請錄入第三個整數: ");
int c = sc.nextInt();
// 方式一
int max = a;
// 通過if語句獲取這三個整數的最大值.
if (a>b && a > c){
max = a;
}else if(b > a && b > c){
max = b;
}else {
max = c;
}
// 將結果打印到控制臺上.
System.out.println("最大值是"+max);
//方式二 用if嵌套
int max2 = a;
if (a > b){
if( a > c){
max2 = a;
}else {
max2 = c;
}
}else {
if (b > c){
max2= b;
}else {
max2 = c;
}
}
System.out.println("方式二判斷的最大值是"+max2);
}
- 記憶
1.if語句控制的語句體如果只有一行代碼, 則該大括號可以省略不寫.
2.if語句控制的語句體如果只有一行代碼, 則該大括號可以省略不寫, 定義變量的語法除外.
3.你省略if后邊的大括號時, 有個問題一定要注意, 不要亂寫分號
.
2switch語句(一般是用于做固定值判斷的
)
執行流程:
1.先計算表達式的值, 然后按照從上往下的順序依次和每一個case對應的值相匹配.
2.如果能匹配成功, 則執行該case對應的語句體, 然后執行break, 至此, 整個switch語句結束.
3.如果和所有的case值都不匹配, 則執行default對應的語句體, 然后執行break, 至此, 整個switch語句結束.
4.解釋: default語句就類似于if. else語句中的else, 當所有條件都不滿足時才會執行.
格式:
switch(表達式) {
case 值1:
語句體1;
break;
case 值2:
語句體2;
break;
case 值3:
語句體3;
break;
... //根據需求, 可以寫多組case.
default:
語句體n;
break;
}
一年有12個月, 分屬于春夏秋冬4個季節, 鍵盤錄入一個月份, 請用程序實現判斷該月份屬于哪個季節, 并輸出。
具體標準如下:
輸入: 1、2、12 輸出:冬季
輸入: 3、4、5 輸出:春季
輸入: 6、7、8 輸出:夏季
輸入: 9、10、11 輸出:秋季
輸入:其它數字 輸出:數字有誤
public class SwitchDemo07 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("請錄入一個月份: ");
int month = sc.nextInt();
switch (month) {
case 12:
case 1:
case 2:
System.out.println("冬季");
break;
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;
default:
System.out.println("沒有這樣的日期");
break;
}
// case穿透 如果case中不寫 break 將出現 case穿透 現象,
// 也就是說 不會再判斷下一個case值 直接向后運行,直到遇到
//break,或者switch語句結束
}
小明快要期末考試了,小明爸爸對他說,會根據他的考試成績,送他不同的禮物.假如你可以控制小明的得分,請用程序實現小明到底該獲得什么樣的禮物,并在控制臺輸出。
禮物標準如下:
90~100 山地自行車一輛
80~89 游樂場玩一次
70~79 變形金剛玩具一個
70以下 胖揍一頓
public class SwitchDemo09 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("請錄入小明的考試成績: ");
int score = sc.nextInt();
if (score >= 0 && score <= 100) {
//合法成績
switch (score / 10) {
case 10:
case 9:
System.out.println("獎勵小明: 山地自行車一輛");
break;
case 8:
System.out.println("獎勵小明: 游樂場玩兒一次");
break;
case 7:
System.out.println("獎勵小明: 變形金剛玩具一個");
break;
default:
System.out.println("獎勵小明: 男女雙混組合拳 + 掃帚棒法");
break;
}
} else {
//非法成績
System.out.println("您錄入的成績有誤!");
}
}
}
根據工齡(整數)給員工漲工資(整數), 工齡和基本工資通過鍵盤錄入
漲工資的條件如下:
[10-15) +5000
[5-10) +2500
[3~5) +1000
[1~3) +500
[0~1) +200
打印格式如下:
您目前工作了10年,基本工資為 3000元, 應漲工資 5000元,漲后工資 8000元
public static void main(String[] args) {
// 1.創建鍵盤錄入對象
Scanner sc = new Scanner(System.in);
// 2.定義變量age表示工齡(假設為int類型),定義變量salary表示基
//本工資(假設為int類型)
// int age,salary;
// 3.通過鍵盤錄入給工齡age賦值和基本工資salary賦值
// age = sc.nextInt();
// salary = sc.nextInt();
int age = sc.nextInt();
int salary = sc.nextInt();
int addSalary = 0;
// 4.對工齡進行邏輯判斷,根據不同的工齡區間,進行漲工資salary+=n;(n表示:漲工資的數量)
if(age>=15||age<0) {
System.out.println("您輸入的工齡不合法~");
return ;
}
//[10-15) +5000
if(age>=10&&age<15) {
addSalary = 5000;
} else if(age>=5&&age<10){//[5-10) +2500
addSalary = 2500;
} else if(age>=3&&age<5) {//[3~5) +1000
addSalary = 1000;
} else if(age>=1&&age<3) {//[1~3) +500
addSalary = 500;
} else if(age>=0&&age<1) {//[0~1) +200
addSalary = 200;
}
// 5.按照格式進行打印
System.out.println("您目前工作了"+age+"年,基本工資為
"+salary+"元, 應漲工資 "+addSalary+"元,漲后工資 "+
(salary+addSalary)+"元");}
}
鍵盤錄入一個三位數字,輸出該三位數字是否是水仙花數字?
水仙花數字要求: 指的是一個三位數,個位、十位、百位的數字立方和等于原數
public static void main(String[] args) {
//1.創建鍵盤錄入對象
Scanner sc = new Scanner(System.in);
//2.獲取一個int數字
System.out.println("請輸入一個三位整數");
int num = sc.nextInt();
//3.獲取個位,十位,百位
int ge = num%10;
int shi = num/10%10;
int bai = num/100%10;
//4.求個位,十位,百位的立方和
int sum = ge*ge*ge + shi*shi*shi + bai*bai*bai;
//5.利用if語句判斷立方和是否等于該數字本身,并輸出結果
if(sum == num) {
System.out.println(num+"是水仙花數字 ");
} else {
System.out.println(num+"不是水仙花數字 ");
}
}
9.循環結構
1.for循環(一般適用于循環次數固定
的情況.)
格式:
for(初始化條件1; 判斷條件2; 控制條件3) {
//循環體4;
}
案例一:for循環入門:通過for循環, 打印10次"Hello World!".
public class ForDemo01 {
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
System.out.println("Hello World!");
}
}
}
案例二: 打印數字,通過for循環, 打印1~5之間的數字.通過for循環, 打印5~1之間的數字.
public class ForDemo02 {
public static void main(String[] args) {
//1. 通過for循環, 打印1~5之間的數字.
for (int i = 1; i <= 5 ; i++) {
System.out.println(i);
}
System.out.println("--------------");
//2. 通過for循環, 打印5~1之間的數字.
//ritar
for (int i = 5; i >= 1; i--) {
System.out.println(i);
}
}
}
案例三:求和案例:通過for循環, 獲取1 ~ 5之間的數字之和.
public class ForDemo03 {
public static void main(String[] args) {
//1. 定義變量sum, 用來記錄數據和.
int sum = 0;
//2. 通過for循環, 依次獲取到1~5之間的數字.
for (int i = 1; i <= 5; i++) {
//3. 將獲取到的數字, 累加給變量sum.
sum += i;
}
System.out.println("1 - 5之間的數字之和是: " + sum);
}
}
案例四:求1-100之間的偶數和,并把求和結果打印到控制臺上.
public class ForDemo04 {
public static void main(String[] args) {
//1. 定義變量sum, 用來記錄數據和.
int sum = 0;
//2. 通過for循環, 依次獲取到1 - 100之間的數字.
for (int i = 1; i <= 100; i++) {
//3. 判斷當前遍歷到的數字是否是偶數.
if (i % 2 == 0) {
//4. 走到這里, 說明是偶數, 累加給變量sum.
sum += i;
}
}
//5. 打印結果.
System.out.println("1 - 100之間的偶數之和是: " + sum);
}
}
案例五: 求和 + 計數,獲取1 - 100之間的奇數和, 以及奇數的個數.
//需求: 獲取1 - 100之間的奇數和, 以及奇數的個數.
public class ForDemo07 {
public static void main(String[] args) {
int count = 0;
int sum = 0;
for (int i = 1; i <= 100 ; i++) {
if (i % 2 != 0) {
sum += i;
count++;
}
}
System.out.println("1-100之間的奇數個數為: " + count + ", 這些奇數
的總和為: " + sum);
}
}
案例八: 換行輸出,把1~100之間的數字, 按照6個一行的格式進行輸出.
public class ForDemo08 {
public static void main(String[] args) {
int flag = 6;
int count = 0;
for (int i = 1; i <= 100 ; i++) {
System.out.print(i + "\t");
if (++count % flag == 0)
System.out.println();
}
}
}