day02
1、運算符
1>算術運算符:+(加),-(減),*(乘),/(除),%(取餘),++(加加),–(減減)
int a = 5,b = 10,c = 15;
System.out.println(a+b);//15
System.out.println(b-1);//5
System.out.println(a*b);//50
System.out.println(b/a);//2
System.out.println(c/b);//1,整數相除結果只能是整數,整數其餘的部分會被捨棄
++,–放在變量前後運算的結果截然不同
int a = 5,b = 10;
System.out.println(a++);//運算結果:5,a的值變爲6
System.out.println(++b);//運算結果爲:6,a的值變爲6
int c = a++;
System.out.println(c);//結果:c=6,a=7
2>關係運算符:>(大於),<(小於),>=(大於等於),<=(小於等於),==(等於等於),!=(不等於)
關係運算符的運算結果爲boolean類型
int a = 5,b = 10;
System.out.println(a>=b);//false
System.out.println(a==b);//false
System.out.println(a!=b);//true
3>邏輯運算符:&&(與),||(或),!(非),運算結果也是boolean類型
邏輯運算符常常與關係運算符一起使用
&&:兩邊都爲true則爲true,否則爲false
||:兩邊都爲false則爲false,否則爲true
!:表示取反,兩邊一真一假
int a = 5,b = 10,c = 15;
boolean d = a<=b && a>=c;
System.out.println(d);//false,d=true&&false=false
int e = a<=b || a>=c;
System.out.println(e);//true,e = true||false=true
4>賦值運算符:=,+=,-=,*=,/=,%=
int a = 5,b = 10;
System.out.println(b+=a);//15,b+=a即b=b+a=15;
int c = 15;
System.out.println(c/+a);//3,c/=a即c=c/a=3;
5>字符串連接運算符:+
String a = 3+4+"hello"+5;
System.out.println(a);//7hello5
String b = "hello" + " " + "world";//hello world
6>條件/三目運算符:boolean?數1:數2;
若boolean結果爲true,則返回結果爲數1;若boolean結果爲false,則返回結果爲false
int a = 5,b = 10;
int c = a>b?a:b;
System.out.println(c);//10,a>b結果爲false,返回結果爲b=10
2、分支結構
1>if結構,1條路
2>if…else結構,2條路
boolean flag = true;
if(flag){}//if結構
if(number>=100){語句塊1
}else{語句塊2
}//if...else語句
3>if…else if結構:多條路
if(條件語句1){
代碼塊1
}else if(){
代碼塊2
}else{
代碼塊3
}
4>嵌套if
if(條件1){
代碼塊1
if(條件2){
代碼塊2
}
}else{
代碼塊3
}
if(score>=0 && score<=100) {
if(score>=90) {
System.out.println("A-優秀");
}else if(score>=80) {
System.out.println("B-良好");
}else if(score>=60) {
System.out.println("C-中等");
}else {
System.out.println("D-不及格");
}
}else {
System.out.println("成績不合法");
}
5>switch…case結構,多條支路
優點:效率高,結構清晰
缺點:表達式的值和case的值相等,且必須爲整數
switch(表達式){
case 值1:
執行代碼塊1;
break;;
case 值2:
執行代碼2;
break;;
case 值3:
執行代碼3;
break;
default:
默認代碼塊;
}
break跳出switch語句,若中間未遇到break,則會向下移動;
若所有的值都不符合,則會默認執行default語句
int num = 4;
switch(num) {
case 1:
System.out.println("Monday");//星期一
break;
case 2:
System.out.println("Tuesday");//星期二
break;
case 3:
System.out.println("Wednesday");//星期三
break;
case 4:
System.out.println("Thursday");//星期四
break;
case 5:
System.out.println("Fraaday");//星期五
break;
case 6:
System.out.println("Saturday");//星期六
break;
case 7:
System.out.println("Sunday");//星期天
break;
default:
System.out.println("請輸入合法數據");//不在上述任何一種情況之內
}
/* 輸出:Thursday */
4,循環結構
任何複雜的程序邏輯都可以通過三種結構來實現:
1)順序結構:從上往下逐行執行,每句必走
2)分支結構:有條件的執行某語句一次,並非每句必走
3)循環結構:有條件的執行某語句多次,並非每句必走
循環:反覆執行一段相同或相似的代碼
循環三要素:
1)循環變量的初始化
2)循環的條件(以循環變量爲基礎)
3)循環變量的改變(向着循環的結束變)
循環變量:在整個循環過程中所反覆改變的那個數
1>while語句
while循環語句格式:
while(判斷條件語句){
循環體語句;
}
2>do…while語句
do{
循環體語句;
} while(判斷條件語句)
while和do…while的區別:while是先判斷後執行,do…while是先執行後判斷,且至少執行一次循環體語句。
3>for循環語句
for(初始化語句;判斷條件語句;控制條件語句) {
循環體語句;
}
特點:三個語句之間,語句可以省略,但分號不可省略;
下面我們舉例分別用三種循環求1-100的和:
/* for循環 */
public class Sum {
public static void main(String[] args) {
int sum = 0;
for(int i=1;i<=100;i++) {
/* i=1,循環變量的初始化
* i <100,循環的條件
* i++,循環變量的改變
*/
sum+=i;
}
System.out.println(sum);
}
}
/* while循環 */
public class Sum {
public static void main(String[] args) {
int sum = 0,i=1;//循環變量的初始化
while(i<=100) {//循環的條件
sum+=i;
i++;//循環變量的改變
}
System.out.println(sum);
}
}
/* do...while循環 */
public class Sum {
public static void main(String[] args) {
int sum = 0,i=1;//循環變量的初始化
do {
sum+=i;
i++;//循環變量的改變
}while(i<=100);//循環的條件
System.out.println(sum);
}
}