程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> Java基礎學習第三天——運算符與流程控制語句

Java基礎學習第三天——運算符與流程控制語句

編輯:JAVA綜合教程

Java基礎學習第三天——運算符與流程控制語句


文檔版本 開發工具 測試平台 工程名字 日期 作者 備注 V1.0       2016.02.22 lutianfei none

運算符

算術運算符 賦值運算符 比較運算符 邏輯運算符 位運算符 三目運算符

算術運算符

\
* 注:整數相除只能得到整數,若想得到小數,只需將任意一個數據變為浮點數。
* 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; 上面兩個代碼有沒有問題,如果有,那裡有問題
第一個個有問題,因素short型變量參與運算時先轉換為int,可能會有精度損失。 第二個沒有問題,因為擴展的賦值運算符隱含了一個強制類型轉換,s+=1;不是等價於s = s+1;而是等價於 s = (s的數據類型)(s+1);

 

關系運算符

\
* 注1:比較運算符的結果都是boolean型,也就是要麼是true,要麼是false。


 

邏輯運算符

\

邏輯運算符用於連接布爾型表達式,在Java中不可以寫成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:針對一個范圍的判斷

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved