* 注:整數相除只能得到整數,若想得到小數,只需將任意一個數據變為浮點數。
* eg:System.out.println(x*1.0/y);<喎?http://www.Bkjia.com/kf/ware/vc/" target="_blank" class="keylink">vcD4NCjxwPjxzdHJvbmc+KyssJm5kYXNoOzwvc3Ryb25nPiA6PC9wPg0Kt8XU2rLZ1/fK/TxzdHJvbmc+x7DD5jwvc3Ryb25nPqOsz8jX1NT2u/LV39fUvPWjrMi7uvPU2bLO0+vUy8vjoaMgt8XU2rLZ1/fK/TxzdHJvbmc+uvPD5jwvc3Ryb25nPqOsz8iyztPr1MvL46Os1NnX1NT2u/LV39fUvPWhow0KPHA+wbfPsMziMaO6PC9wPg0KPGJsb2NrcXVvdGU+DQoJPHA+aW50IGE9MTAsYj0xMCxjPTEwPGJyIC8+DQoJYT1iKys7IC8vYT0xMCxiPTExLGM9MTA8YnIgLz4NCgljPSZuZGFzaDthOyAvL2E9OSxiPTExLGM9OTxiciAvPg0KCWI9KythOyAvL2E9MTAsYj0xMCxjPTk8YnIgLz4NCglhPWMmbmRhc2g7OyAvL2E9OSxiPTEwLGM9ODwvcD4NCjwvYmxvY2txdW90ZT4NCjxwPsG3z7DM4jKjujwvcD4NCjxibG9ja3F1b3RlPg0KCTxwPmludCB4ID00PGJyIC8+DQoJaW50IHkgPSh4KyspKygrK3gpKyh4KjEwKTxiciAvPg0KCXN0ZXAxOiA0KyAoeCA9IDUpPGJyIC8+DQoJc3RlcDI6IDQrNih4ID0gNik8YnIgLz4NCglzdGVwMzogNCs2ICsoNioxMCk8L3A+DQo8L2Jsb2NrcXVvdGU+DQo8aDUgaWQ9"的用法">‘+’的用法
加法運算符
System.out.println(‘a’+1); 結果為:98 正號 字符串連接符
System.out.println(“Hello” + ‘a’ +1); 結果:helloa1 System.out.println(‘a’ + 1 + “Hello”);結果:98hello,第二個加號才是字符串連接符。
符號:
= , +=, -=, *=, /=, %= =為基本的賦值運算符,其他的為擴展的賦值運算符面試題
short s=1; s = s+1; short s=1; s+=1; 上面兩個代碼有沒有問題,如果有,那裡有問題
* 注1:比較運算符的結果都是boolean型,也就是要麼是true,要麼是false。
3,應該寫成x>3 & x<6
。
“&”和“&&”的區別:
單&時,按位與!左邊無論真假,右邊都進行運算; 雙&時,邏輯與!如果左邊為真,右邊參與運算,如果左邊為假,那麼右邊不參與運算。
“|”和“||”的區別同理,雙或時,左邊為真,右邊不參與運算。
異或( ^ )與或( | )的不同之處是:當左右都為true時,結果為false。
位運算符
注2:’^’的特點:一個數據對另一個數據位異或兩次,該數據不變。
面試題1:請自己實現兩個整數變量的交換
class OperatorTest{
public static void main(String[] args){
int a = 10;
int b = 20;
System.out.println("a:"+a+",b:"+b);
//方式1:使用第三方變量(開發中最常用的)
int c = a;
a = b;
b = c;
//方式2:用位異或實現(面試裝逼項)
//結論:左邊a,b,a; 右邊:a^b
a = a ^ b;
b = a ^ b; // a^b^b = a
a = a ^ b; // a^a^b = b
//方式3:用變量相加的做法
a = a+b; // a= 30
b = a-b; // b= 10
a = a-b; // a= 20
//方式4:一句話搞定(面試裝逼項)
b = (a+b) - (a=b);
}
}
三目運算符
格式
(關系表達式)?表達式1:表達式2
; 如果條件為true,運算後的結果是表達式1; 如果條件為false,運算後的結果是表達式2;
練習:獲取三個整數中的最大值
class OperatorTest{
public static void main(String[] args){
int a = 10;
int b = 30;
int c = 20;
int temp = (a>b)?a:b;
//System.out.println(temp);
int max =(temp > c) ? temp : c;
System.out.println("max is "+max);
//方法2:一步搞定
int max1 =(a>b) ? ((a>c) ? a : c) : ((b>c) ? b : c);
}
}
鍵盤錄入數據
如何實現鍵盤錄入數據呢?(目前先記住使用)
導包(位置放到class定義的上面)
import java.util.Scanner; 創建對象
Scanner sc = new Scanner(System.in); 接收數據
int x = sc.nextInt();
import java.util.Scanner;
class ScannerDemo{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("請輸入一個數據:");
int x = sc.nextInt();
System.out.println("你輸入的數據是:"+x);
}
}
流程控制語句
流程控制語句分類
順序結構 選擇結構 循環結構
順序結構
順序結構概述
是程序中最簡單最基本的流程控制,沒有特定的語法結構,按照代碼的先後順序,依次執行,程序中大多數的代碼都是這樣執行的。
選擇結構
Java語言提供了兩種選擇結構語句
if語句 switch語句
if語句第一種格式
if(關系表達式) {
語句體
}
執行流程
首先判斷關系表達式看其結果是true還是false 如果是true就執行語句體 如果是false就不執行語句體
注意事項
關系表達式無論簡單還是復雜,結果必須是boolean類型 if語句控制的語句體如果是一條語句,大括號可以省略;如果是多條語句,就不能省略。建議永遠不要省略。 一般來說:有左大括號就沒有分號,有分號就沒有左大括號
if語句第二種格式
if(關系表達式) {
語句體1;
}else {
語句體2;
}
執行流程
首先判斷關系表達式看其結果是true還是false 如果是true就執行語句體1 如果是false就執行語句體2
if的第二種格式和三元運算符之間的轉換
三元運算符的操作都可以使用if語句改進,反之不成立 什麼時候不成立呢?
當if語句控制的語句體是一條輸出語句的時候,就不成立。因為三元運算符是一個運算符,必須要求有一個結果返回。而輸出語句卻不能作為一個返回結果。
if語句第三種格式
if(關系表達式1) {
語句體1;
}else if (關系表達式2) {
語句體2;
}
…
else {
語句體n+1;
}
if語句的使用場景:
A:針對表達式是一個boolean類型的判斷 B:針對一個范圍的判斷