Day02筆記
運算符
1.位運算
& | ^
3&6 = 2
3: 0000 0011
6 :0000 0110
結果: 0000 0010
3|7 = 7
0000 0011
0000 0111
0000 0111
3^7 = 4
0000 0011
0000 0111
0000 0100
左移右移運算符
<< >>
3<<2 = 12 3*22 = 12
3<<3 = 24 3*23= 24
0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 |
0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 |
0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 |
6>>2= 1 6/22 =1
6>>3 =0 6/23 = 0
0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
0 | 0 | 0 | 0 | 0 | 0 | 0 |
自增自減運算符
++ -- 1
自增符號寫到變量名稱之後:先參與運算,再執行自增
前:先執行自增,再參與運算
自減符號寫到變量名稱之後:先參與運算,再執行自減
前:先執行自增,再參與運算
複合運算符 :一步進行加號運算和賦值運算,不需要強制轉換
+= -=*=/=
三目運算(唯一的)
語法: 表達式1?表達式2:表達式3;
執行情況:表達式1結果爲true,執行表達式2
False,執行表達式3
流程控制語句
判斷語句 if 判斷條件返回值必須是boolean值,
語法:if(判斷條件){
代碼塊;
}
當代碼塊只有一句時,可以省略大括號。
If - else 表達式,比單個if語句執行效率高
If(條件表達式){
代碼塊1;
}else{
代碼塊2;
}
if else if :永遠只執行某個條件的一個代碼塊
語法:if(表達式1){
代碼塊1;
}else if(表達式2){
代碼塊2;
}else if(表達式3){
代碼塊3;
}
......
else{
代碼塊1;
}
分支語句
switch case key是值,常量,key的類型只可以是int short byte char
語法:switch(key){
case key1:
代碼塊1;
break;
case key2:
代碼塊2;
break;
case key3:
代碼塊3;
break;
.....
default:
代碼塊
break;
}
If -else 和switch語句的區別:判斷是範圍的情況使用if;判斷的值是固定的值、個數使用switch. If語句可以代替switch.
循環結構
三種循環體系
while
語法:
while(條件表達式){
代碼塊;
}
do while
語法:
do{
代碼塊;
}while(條件表達式);
While和do while循環的區別:條件不滿足時,while循環不執行,dowhile循環執行一次。
for
語法:
for(初始部分; 條件表達式;迭代部分){
代碼塊;
}
While循環和for循環的區別:while循環次數未知。For循環的次數是已知的固定的。
嵌套循環 for循環的嵌套
public class Day02_01{
public static void main(String[] args){
//位運算
//System.out.println(3^7);
/*左移右移
System.out.println(6>>2);*/
//自增自減
/*int i = 10;
int j = 1 + i--;
int h = --i+1 ;
System.out.println("....j:"+j+"i:"+i);
System.out.println("....h:"+h);*/
//複合運算符
/*int i = 10;
i = i +1 ;
i += 1;
System.out.println("....i:"+i);*/
/*short i = 10;
//i = i +1 ;//從int轉換到short可能會有損失
i += 1;
System.out.println("....i:"+i);*/
//三目運算符
int a = 10;
int b = 3<2 ? 3: 6;
System.out.println("....b:"+b);
}
}
public class Day02_02{
public static void main(String[] args){
/*if判斷語句*/
/*int a = 10;
if(a>8){
System.out.println("判斷語句執行11");
}
if(a<8){
System.out.println("判斷語句執行22");
}
System.out.println("----------分隔符---------");
if(a>8){
System.out.println("判斷語句執行33");
}else{
System.out.println("判斷語句執行44");
}*/
/*int a = 10;
int b = 3<2 ? 3: 6;
System.out.println("....b:"+b);*/
//作用域
/*int a = 10;
int b;
if(3<2){
b = 3;
}else{
b = 6;
}
System.out.println("....b:"+b);*/
/*if - else if -else*/
/*int score = 70;
if(score >= 60 && score < 70){
System.out.println("一般");
}else if(score >= 70 && score < 80){
System.out.println("良");
}else if(score >= 80 && score < 90){
System.out.println("優良");
}else if(score >= 90 && score <= 100){
System.out.println("優");
}else{
System.out.println("不及格");
}*/
/*一週7天
switch穿透:匹配上一個條件時,其餘的都不管,直接進行執行。
break:跳出循環
*/
boolean day = true;
switch(day){ //不兼容的類型: boolean無法轉換爲int 爲什麼?
case true:
System.out.println("星期1");
break;
case false:
System.out.println("星期2");
break;
/*case 3:
System.out.println("星期3");
break;
case 4:
System.out.println("星期4");
break;
case 5:
System.out.println("星期5");
break;
case 6:
System.out.println("星期6");
break;
case 7:
System.out.println("星期7");
break;*/
default:
System.out.println("不匹配");
break;
}
}
}
public class Day02_03{
public static void main(String[] args){
//while循環語句
/*int i = 1;
while(i<3){
System.out.println("while循環語句");
i++;
}
System.out.println("結束");*/
//輸出1-100 以內的7的倍數
/*int i = 1;
while(i<=100){
if(i%7 == 0 ){
System.out.println("i:"+i);
}
i++;
}*/
/*int i = 100;
while(i>=1){
if(i%7 == 0 ){
System.out.println("i:"+i);
}
i--;
}*/
/*int i = 0;
while(i>=1){
System.out.println("進入while循環");
if(i%7 == 0 ){
System.out.println("i:"+i);
}
i--;
}
System.out.println("---------分隔符-----------");
int j = 0;
do{
System.out.println("進入do while循環");
if(j%7 == 0 ){
System.out.println("j:"+j);
}
j--;
}while(j>=1);*/
/*int i = 100;
while(i>=1){
if(i%7 == 0 ){
System.out.println("i:"+i);
}
i--;
}*/
/*for(int i = 100; i >= 1 ; i--){
if(i%7 == 0 ){
System.out.println("i:"+i);
}
}*/
/*
*****
*****
*****
*****
*****
*/
for(int i = 0 ;i<5; i++){
for(int j = 0 ; j< 5;j++){
System.out.print("*");
}
System.out.println();
}
}
}
public class Practice_01{
public static void main(String[] args){
boolean vip = true;//會員,false爲非會員,true爲會員
double buy_money = 100;
double discount_money = 0;//折扣金額
double real_money = 0;//實際支付金額
//從是否爲會員的角度來分析
if(vip){//會員
if(buy_money >= 100){
discount_money = buy_money * (1 - 0.8);
}else{
discount_money = buy_money * (1 - 0.9);
}
}else{//非會員
if(buy_money >= 100){
discount_money = buy_money * (1 - 0.9);
}
}
System.out.println("1折扣金額discount_money:"+discount_money);
System.out.println("1實際支付金額real_money:"+(buy_money-discount_money));
//從打9折打8折的角度分析
if((vip==true && buy_money < 100)|| (vip == false && buy_money >= 100)){//9折
discount_money = buy_money * (1 - 0.9);
}else if(vip==true && buy_money >= 100){//8折
discount_money = buy_money * (1 - 0.8);
}else{
discount_money = buy_money ;
}
System.out.println("2折扣金額discount_money:"+discount_money);
System.out.println("2實際支付金額real_money:"+(buy_money-discount_money));
/*while循環語句
int i = 1;
while(i<3){
System.out.println("while循環語句");
i++;
}
System.out.println("結束");
*/
//輸出1-100 以內的7的倍數
/*int i = 1;
while(i<=100){
if(i%7 == 0 ){
System.out.println("i:"+i);
}
i++;
}
int i = 100;
while(i>=1){
if(i%7 == 0 ){
System.out.println("i:"+i);
}
i--;
}
int i = 0;
while(i>=1){
System.out.println("進入while循環");
if(i%7 == 0 ){
System.out.println("i:"+i);
}
i--;
}
System.out.println("---------分隔符-----------");
int j = 0;
do{
System.out.println("進入do while循環");
if(j%7 == 0 ){
System.out.println("j:"+j);
}
j--;
}while(j>=1);
int i = 100;
while(i>=1){
if(i%7 == 0 ){
System.out.println("i:"+i);
}
i--;
}
for(int i = 100; i>=1 ; i--;){
if(i%7 == 0 ){
System.out.println("i:"+i);
}
}
*/
/*
*****
*****
*****
*****
*****
*/
/*for(int i = 0 ;i<5; i++){
for(int j = 0 ; j< 5;j++){
System.out.print("*");
}
System.out.println();
}*/
}
}