1. 程式人生 > >六類運算子+鍵盤錄入+流程控制語句之順序結構與選擇結構中的if與switch語句部分+練習+面試題(java基礎語法篇二)

六類運算子+鍵盤錄入+流程控制語句之順序結構與選擇結構中的if與switch語句部分+練習+面試題(java基礎語法篇二)

一。運算子(對常量和變數進行操作的符號)


1.1算術運算子


嘗試敲出以下程式碼,看看輸出的結果分別是什麼?


相信通過敲出上面程式碼並執行,已經看出 /運算子是取商,而且商是向下取整,%則是取餘數


沒理解的話做下下面兩個題試試(答案在下面,先自己計算出答案再敲出來驗證)

 

第一題答案 9,10,8 第二題答案 6,70 如下


加法的三種用法(輸出結果 在右邊黑的那塊的最下面)


1.2賦值運算子



以此類推,我們不難猜出 -=就是把左邊和右邊做加法,然後賦值給左邊 其它的我就不贅述了

理解了的話結合前面的知識做道面試題吧(答案在下,先思考然後敲出驗證再檢視答案的分析最好


答案:第一句報可能損失精度的錯,第二句沒錯

分析:第一句是因為整數在進行運算時會先轉換為int型別,然後運算後得到的結果也是int型別,賦給一個short型別的值有可能

出現精度損失的狀況(int型別4個位元組賦給兩個位元組的short型別相當於要去除前面兩個位元組),而+=運算子會把結果自動強轉為左邊的資料型別


1.3 比較運算子


看看並敲出下例,輸出結果為右下角


1.4 邏輯運算子

    


程式碼示例如下,自己嘗試手敲練習,想要程式碼複製貼上是不可能的


1.5 位運算子(不需要掌握,因為我們開發中都是做十進位制的運算)

為什麼要講:因為你會在很多原始碼中看到,因為所有運算操作在計算機底層會變成位運算,它會提高程式的效率

 圖沒看懂看看下面文字

位運算也就是先將數值轉換為2進位制後進行的運算

<<: 1<<2意思是把1向左邊移兩位右邊補0,得到結果為100也就是十進位制的4

>>: 12>>2意思是把1向右邊移兩位左邊補0,得到結果為11也就是十進位制的3

無符號右移與右移的區別:11的二進位制形式為:0000 0000 0000 0000 0000 0000 0000 1011,然後把低位的最後兩個數字移出,因為該數字是正數,所以在高位補零。則得到的最終結果是0000 0000 0000 0000 0000 0000 0000 0010。轉換為十進位制是2。 無符號右移與帶符號右移的區別就是 無符號始終補0

&: 1&2 也就是 1 & 0b10結果為0,同一位置都為1才得1,否則得0

|: 1|2 也就是 1 & 0b10結果為0b11也就是3,同一位置有一個為1就得1,否則得0

^:1|2 也就是 1 & 0b10結果為0b11也就是3,同一位置不相同得1,相同得0

~:這個就不跟你算了,涉及原反補碼的知識(好學的同學可以百度瞭解瞭解),告訴你一個面試技巧,4的反碼就是-5,為什麼呢:正數最小為0,負數最大為-1,取-1到0的中間為分界線,那麼與4對應的就是-5。

出個題:~80是多少?(答案就不給了,看了上面的分析很容易得出)


答案:

2<<3

使用第三方變數第二題很簡單,所以我們給出的答案不包括這種(要點:一個數異或另一個數兩次結果還是這個數)


1.6 三目運算子


如果覺得自己掌握了做下面幾個題目練習下(放心,答案是有的)



二。鍵盤錄入資料

示例如下(前期不懂的話先照著敲一遍)

為什麼要導包:因為你用的類是別人寫的,而它在你要導的那個包內


編譯這個java檔案並執行裡面的類後,介面上會有個一閃一閃的 - 這時你輸入一個整數 5 後

介面會顯示你輸入的資料是:5

注意:當你輸入的不是整數時,頁面會報以下錯誤(輸入不匹配異常)


理解了的話做下面的練習


答案如下,必須要自己先練習


還有練習(厭學或者覺得自己掌握這一塊了就跳過


進一步的練習(不給答案,自己練練)


三。流程控制語句之選擇結構


3.1順序結構


3.2選擇結構


3.2.1 選擇結構之if語句

 

 

示例如下


懂了的話做下下面這兩個練習


答案結合了前面的鍵盤輸入,少了導包跟a的輸入(自己腦補或者複習前面鍵盤輸入完成練習)



注意:java裡沒有2x與 1<a<3這樣的寫法 要寫成 2*x 與 a>1 && a<3

理解了的話再做做下面兩個練習(答案就不給了)


3.2.2 選擇結構之switch語句(比較固定的值時用switch比if好)

(少了個})

注意:

1.case後面的值只能是常量表達式不能是變數

2.case後面的值不能重複

3.default可以省略,但是不建議,它的作用是對不正確的情況給出提示,除非判斷的值固定

4.break可以省略,但是會發生case穿透,也就是當前case下面的語句也會執行,結果可能不是你想要的

5.default不一定要放在最後,可以放在任意位置,但是,建議放最後,它表示其它的情況

6.switch的結束條件:遇到break或者執行到末尾

7.執行順序是先執行case,case中沒有匹配的再走default跟擺放順序無關

示例:


面試題:

答案:可以,不可以,JDK1.7後可以

合適的程式碼風格:


如下


練習題(第二題根據上面的‘注意’好好想想)

答案:


下面的題目自己練習哦,練習了的肯定掌握得更深


第一題因為暫時沒學字元的鍵盤輸入(後面講),所以這裡採用輸入數字再轉化為字元進行switch判斷

第一題示例(這裡截圖沒包括類的定義與main方法,你還是要寫哦):



第二題示例:


第三題最終答案(利用case穿透,可以少寫蠻多程式碼,不過這裡用if比較好):

if與switch的區別及各自適用場景


流程控制語句先講到這,因為下一部分的迴圈結構內容比較多也很重要所以單獨在下一篇裡詳細講解

下面怎麼還有這麼多空白...我要說不下去了(況且有耐心或者說有興趣看到此處的人都不一定有),下面的計劃是寫給我自己的

明天要入職了,後面估計一週一篇,我計劃27篇左右寫完J2SE部分,後面除了一些比較重要的常用API還會有java反射機制與常用設計模式的內容,然後之後的計劃是javaweb 也差不多二十多篇,再然後常用框架及其底層 再後面的話會有些工作中的經驗之談 但那也大概是一年半以後了,也希望到那時還能保持一個穩定的更新狀態)

-----另外:希望對準備入門java開發的你有所幫助,能堅持學完並找到一份不錯的工作

相關推薦

運算子+鍵盤錄入+流程控制語句順序結構選擇結構ifswitch語句部分+練習+試題java基礎語法

一。運算子(對常量和變數進行操作的符號)1.1算術運算子嘗試敲出以下程式碼,看看輸出的結果分別是什麼?相信通過敲出上面程式碼並執行,已經看出 /運算子是取商,而且商是向下取整,%則是取餘數沒理解的話做下下面兩個題試試(答案在下面,先自己計算出答案再敲出來驗證) 第一題答案 9

Java的FileJava基礎複習歸納系列

參考資料:THU 諶衛軍教學PPT 目錄 一、檔案 什麼是檔案 檔案的屬性 目錄 一、檔案 什麼是檔案 檔案是一種抽象機制,它提供了一種把資訊儲存在磁碟等儲存裝置上,並且便於以後訪問的方法。 在一個作業系統中,負責處理檔案相關

Java的ScannerJava基礎複習歸納系列

   參考資料:Java doc、THU 諶衛軍老師的教學PPT Scanner類         作用:一個可以使用正則表示式來解析基本型別和字串的簡單文字掃描器。可以方便地對文字檔案中的每一個不同型別的資料單元進行訪問;         Scanner 使用分隔

JAVA基礎-3.運算子,鍵盤錄入if語句

1:運算子(掌握) (1)算術運算子 A:+,-,*,/,%,++,– B:+的用法 a:加法 b:正號 c:字串連線符

Java 003 運算子 鍵盤錄入資料

知識點梳理 心得體會 小知識點 1.以下幾組運算子的區別 =和= =: =為賦值 = =為比較 ++或——位置: ++或–在前,先自加或自減,再參與運算 ++或–在後,先參與運算,再自加或自減 &&和||: &&左邊true才會判斷右邊,左邊

Java流程控制語句順序結構選擇結構、迴圈結構、隨機方法

程式三種結構:順序結構,選擇結構,迴圈結構; 一、順序結構       一切從main開始,從上到下,此乃順序結構; 二、選擇結構      1、if(條件表示式)語句      2、if(條件表示式){一條或者多條語句}             3、switc

java基礎語法day04流程控制語句switch、陣列

今日內容介紹1. 流程控制語句(switch)2. 陣列第1章 流程控制語句1.1 選擇結構switchswitch 條件語句也是一種很常用的選擇語句,它和if條件語句不同,它只能針對某個表示式的值作出判斷,從而決定程式執行哪一段程式碼。例如,在程式中使用數字1~7來表示星期

C語言流程控制結構順序結構選擇結構

def str pan c語言 size ase 需要 有一個 進行 C語言3種流程控制結構:順序結構、選擇結構、循環結構。 順序結構   最簡單的結構,不需要關鍵字。安照代碼順序一步步執行。 選擇結構   (一)if簡單使用   1) 第一種結構:if   a) 如果條

-1-1 java 基礎語法 java關鍵字 java 註釋 常量 語句 運算子 函式 陣列定義

Java語言基礎組成   關鍵字 識別符號 註釋 常量和變數 運算子 語句 函式 陣列 關鍵字 定義:被Java語言賦予了特殊含義的單詞 特點:關鍵字中所有字母都為小寫 用於定義資料型別的關鍵字 class interface byte short int long 

Java基礎語法()---流程控制函式

switch語句特點: 1、switch語句選擇的型別只有四種:byte,short,int,char。 2、case與default沒有順序。先執行第一個case,沒有匹配的case執行default。 3、結束switch語句的兩種情況:①遇到break,②執行到switch

JAVA基礎語法1(循環語句)

1:switch語句的格式.2.for循環的格式.3.while循環的格式.1:switch語句的格式:q‘wea‘s‘d Switch語句:選擇結構語句 格式: switch(表達式){

2 Java基礎語法(keyword,標識符,凝視,常量,進制轉換,變量,數據型,數據型轉換)

註意事項 got tracking char 單行 pan wall -c -s 1:keyword(掌握) (1)被Java語言賦予特定含義的單詞 (2)特點:

Java電商項目試題

Java插入商品的話,要求級聯插入幾張表,你們當時是怎麽實現的?通過Redis生成商品編號(ID)保存商品表再保存Sku表(此表中外鍵,是商品表的ID)在青島做了兩年開發,大大小小參與過三個項目的開發,一個是某公司內部的人員管理系統,一個是物流項目,最近做的是一個電商項目。在整個項目中,我們采用的是nginx

java基礎 第十異常處理、工具、集合

重寫 trac com int 出現異常 sta 順序存儲 空指針異常 處理 一、異常處理 1.兩種異常: (1)程序員自身問題(運行時異常) (2)外界問題(可控異常) 2.兩種異常的詳細說明 (1)運行時異常

Python試題

不知道 服務端 並發 獲取對象 alter base 編輯 優點 相同 1.什麽是C/S和B/S架構? C/S是Client/Server,即客戶端/服務器端架構,一種典型的兩層架構。B/S是Browser/Server,即瀏覽器/服務器架構。C/S 優點和缺點優點:(1)

Java基礎語法 - 三元運算子

1 package com.demo2; 2 3 /* 4 * 三元運算子: 5 * 關係表示式 ? 表示式1 : 表示式2 6 * 7 * 執行流程: 8 * A: 計算關係表示式的值,看是true還是false 9 * B: 如果是true,表

Java基礎語法 - 獲取鍵盤輸入

1 package com.demo3; 2 import java.util.Scanner; 3 4 /* 5 * 使用 Scanner 獲取鍵盤輸入供程式使用 6 * 7 * 使用步驟: 8 * A:導包 9 * import java.util

從阿里巴巴試題java載入機制

首先很經典的阿里巴巴面試題 加上我自己的一些疑惑程式碼 public class Text { public static int k = 0; public final int k1 = 3; //自己加的 public static Text t1 = new Text("

Java基礎語法 - 面向物件 - 的主方法main方法

主方法是類的入口點,它指定了程式從何處開始,提供對程式流向的控制。Java編譯器通過主方法來執行程式。 主方法的語法如下: 1 /* 2 a.主方法是靜態的,如果要直接在主方法中呼叫其它方法,則該方法必須也是靜態的。 3 b.主方法沒有返回值 4 c.主方法的形參為陣列。其中

java常見面試題Java程式設計師試題

不知不覺中,已經將面試題更新到第六篇了,龐大的java面試題庫,想要刷完似乎不大可能,需要一點一點的積累。 1、java 中會存在記憶體洩漏嗎,請簡單描述。   答:會;存在無用但可達的物件,這些物件不能被GC 回收,導致耗費記憶體資源。 2、靜態變數和例項變數的區別?