Java-運算符和控制語句(上)(基于c語言的補充)

算術運算符

關于求余
在這里插入圖片描述
不管分子,分母是正還是負,對于分母,直接取正;對于分子若有負號,則先提取出來;剩下兩個正的分子分母運算;最后,若剛才的分子有負號,對最后的結果添加負號。

做除法和取模時,右操作數不能為0
在這里插入圖片描述
在這里插入圖片描述

% 不僅可以對整型取模,也可以對double類型取模
在這里插入圖片描述

自增/自減運算符 ++ – 一個特例
在這里插入圖片描述

關系運算符
其計算結果是 true 或者 false
在這里插入圖片描述
true<5,表達方式不正確;正確的寫法如下:
在這里插入圖片描述

在這里插入圖片描述

邏輯運算符

短路求值
在這里插入圖片描述
我們都知道, 計算 10 / 0 會導致程序拋出異常. 但是上面的代碼卻能正常運行, 說明 10 / 0 并沒有真正被求值.
對于 &&, 如果左側表達式值為 false, 則表達式結果一定是 false, 無需計算右側表達式.
對于 ||, 如果左側表達式值為 true,則表達式結果一定是 true, 無需計算右側表達式.

& 和 | 如果表達式結果為 boolean 時, 也表示邏輯運算. 但與 && || 相比, 它們不支持短路求值.少用
在這里插入圖片描述

位運算符 & | ~ ^
位操作表示 按二進制位運算
按位異或 ^: 如果兩個數字的二進制位相同, 則結果為 0, 相異則結果為1,可用于標記不同點

移位運算
左移 <<: 最左側位不要了, 最右側補 0.

右移 >>: 最右側位不要了, 最左側補符號位(正數補0, 負數補1)

無符號右移 >>>: 最右側位不要了, 最左側補 0. 左移 1 位, 相當于原數字 * 2;右移 1 位, 相當于原數字 / 2

條件運算符
表達式1 ? 表達式2 : 表達式3
當 表達式1 的值為 true 時, 整個表達式的值為 表達式2 的值;
當 表達式1的值為 false 時, 整個表達式的值為 表達式3 的值.

求兩個數的最大值
在這里插入圖片描述

表達式2和表達式3的結果要是同類型的,除非能發生類型隱式類型轉換
在這里插入圖片描述
表達式不能單獨存在,其產生的結果必須要被使用
在這里插入圖片描述

運算符的優先級
運算符之間是有優先級的. 具體的規則我們不必記憶. 在可能存在歧義的代碼中加上括號即可

邏輯控制
順序結構和分支結構

if語句
if(布爾表達式){
// 語句
}

if(布爾表達式){
// 語句1
}else{
// 語句2
}

if(布爾表達式1){
// 語句1
}else if(布爾表達式2){
// 語句2
}else{
// 語句3
}

        int a=34;if(a>0) {System.out.println(a);}if(a>0) {System.out.println("a>0");} else{System.out.println("a<0");}a=0;if(a>0) {System.out.println("a>0");}else if(a==0){System.out.println("a==0");}else{System.out.println("a<0");}

括號內必須為布爾表達式

判斷一個數字是奇數還是偶數
在這里插入圖片描述

判斷一個年份是否為閏年
在這里插入圖片描述
在這里插入圖片描述

分號問題
在這里插入圖片描述
此處多寫了一個 分號, 導致分號成為了 if 語句的語句體, 而 { } 中的代碼已經成為了和一個 if 無關的代碼塊.

懸垂 else 問題,沒有花括號
在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述
上面這兩個都是不對的

在這里插入圖片描述
負數的補碼是原碼的符號位不變,數值位取反后加1:從1000 0001 到 1111 1111(-1到-127) 最后規定1000 0000為-128
在這里插入圖片描述

在這里插入圖片描述

switch 語句
在這里插入圖片描述
witch的括號內只能是以下類型的表達式:
基本類型:byte、char、short、int,注意不能是long類型
引用類型:String常量串、枚舉類型
在這里插入圖片描述
正確寫法如下:
在這里插入圖片描述

break 不要遺漏, 否則會失去 “多分支選擇” 的效果
在這里插入圖片描述

switch 不能表達復雜的條件
在這里插入圖片描述

while 循環
while(循環條件:布爾表達式){
循環語句;}

這里的循環條件為布爾表達式
在這里插入圖片描述

打印 1 - 10 的數字
在這里插入圖片描述

計算 1 - 100 的和
在這里插入圖片描述

計算 5 的階乘
在這里插入圖片描述

計算 1! + 2! + 3! + 4! + 5!
在這里插入圖片描述

和 if 類似, while 下面的語句可以不寫 { } , 但是不寫的時候只能支持一條語句
和 if 類似, while 后面不要多寫 分號, 否則可能導致循環不能正確執行.
在這里插入圖片描述
此時 ; 為 while 的語句體(這是一個空語句), 實際的 { } 部分和循環無關. 此時循環條件 num <= 10 恒成立, 導致代碼 死循環了

break語句

找到 100 - 200 中第一個 3 的倍數
在這里插入圖片描述

continue語句

找到 100 - 200 中所有 3 的倍數
在這里插入圖片描述

for循環
for(表達式①;布爾表達式②;表達式③){
表達式④;
}

for循環快捷鍵:fori

計算 1 - 100 的和
在這里插入圖片描述


計算 5 的階乘
在這里插入圖片描述


計算 1! + 2! + 3! + 4! + 5!
在這里插入圖片描述


do while語句
一般 do while 很少用到, 更推薦使用 for 和 while.


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/42701.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/42701.shtml
英文地址,請注明出處:http://en.pswp.cn/news/42701.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Java版 招投標系統簡介 招投標系統源碼 java招投標系統 招投標系統功能設計tbms

? 項目說明 隨著公司的快速發展&#xff0c;企業人員和經營規模不斷壯大&#xff0c;公司對內部招采管理的提升提出了更高的要求。在企業里建立一個公平、公開、公正的采購環境&#xff0c;最大限度控制采購成本至關重要。符合國家電子招投標法律法規及相關規范&#xff0c;以…

scala中json4s 使用詳解

預備知識 json4s的數據結構AST (Abstract Syntax Tree)。 sealed abstract class JValue case object JNothing extends JValue // zero for JValue case object JNull extends JValue case class JString(s: String) extends JValue case class JDouble(num: Double) extend…

arcgis--坐標系

1、arcgis中&#xff0c;投影坐標系的y坐標一定是7位數&#xff0c;X坐標有兩種&#xff1a;6位和8位。 6位&#xff1a;省略帶號&#xff0c;這是中央經線形式的投影坐標&#xff0c;一般投影坐標中會帶CM字樣&#xff1b;8位&#xff1a;包括帶號&#xff0c;一般投影坐標中…

數字化時代,數據倉庫和商業智能BI系統演進的五個階段

數字化在逐漸成熟的同時&#xff0c;社會上也對數字化的性質有了進一步認識。當下&#xff0c;數字化除了前邊提到的將復雜的信息、知識轉化為可以度量的數字、數據&#xff0c;在將其轉化為二進制代碼&#xff0c;引入計算機內部&#xff0c;建立數據模型&#xff0c;統一進行…

一鍵搭訕以及打招呼設置(swift)

項目描述&#xff1a;用戶通過打招呼設置錄制打招呼語音&#xff0c;添加打招呼文字&#xff0c;首頁feed頁面展示sayhi的小動畫&#xff0c;點開可查看將要搭訕的列表&#xff0c;選擇想要搭訕的用戶以及搭訕的文字和語音&#xff0c;也可隨機選擇文案、語音&#xff0c;未通過…

CAS 一些隱藏的知識,您了解嗎

目錄 ConcurrentHashMap 一定是線程安全的嗎 CAS 機制的注意事項 使用java 并行流 &#xff0c;您要留意了 ConcurrentHashMap 在JDK1.8中ConcurrentHashMap 內部使用的是數組加鏈表加紅黑樹的結構&#xff0c;通過CASvolatile或synchronized的方式來保證線程安全的,這些原理…

TikTok或將于8月底關閉半閉環、速賣通或將推出“半托管”模式

《出海周報》是運營壇為外貿企業主和外貿人獨家打造的重要資訊欄目&#xff0c;聚焦企業出海、海外市場動態、海外監管政策等方面&#xff0c;以簡捷的方式&#xff0c;提升讀者獲取資訊的效率。 接下來運營壇為大家帶來第15期出海周報&#xff0c;快來看看這周國內外市場發生了…

C++--紅黑樹

1.什么是紅黑樹 紅黑樹&#xff0c;是一種二叉搜索樹&#xff0c;但在每個結點上增加一個存儲位表示結點的顏色&#xff0c;可以是Red或Black。 通過對任何一條從根到葉子的路徑上各個結點著色方式的限制&#xff0c;紅黑樹確保沒有一條路徑會比其他路徑長出倆倍&#xff0c;因…

jdbc 使用rewriteBatchedStatements=true后,報錯

jdbc 使用rewriteBatchedStatementstrue后&#xff0c;報錯了 rewriteBatchedStatementstrue解釋 rewriteBatchedStatementstrue是一個配置選項&#xff0c;它影響MySQL JDBC驅動程序的行為。JDBC是Java數據庫連接的標準。當你使用Java程序連接MySQL數據庫時&#xff0c;你需要…

秋招面經——結合各方面試經驗

Mysql mysql事務 共享鎖與排他鎖 共享鎖&#xff1a;允許一個事務去讀一行&#xff0c;阻止其他事務獲得相同數據集的排他鎖。&#xff08;讀都允許讀&#xff0c;但我在讀不允許你去改&#xff09; 排他鎖&#xff1a;允許一個事務去讀一行&#xff0c;阻止其他事務獲得相同…

UVA 10006 埃氏篩法+快速冪

本題目使用費馬定理時&#xff0c;我隨機定義了10個數字&#xff0c;循環用費馬小定理判斷&#xff0c;數組中的值不用和我的相同&#xff0c;隨機即可。 #include <iostream> using namespace std; typedef unsigned long long ll; bool isPrime[65007]; ll a[10]; voi…

【Unity細節】Unity中的層級LayerMask

&#x1f468;?&#x1f4bb;個人主頁&#xff1a;元宇宙-秩沅 hallo 歡迎 點贊&#x1f44d; 收藏? 留言&#x1f4dd; 加關注?! 本文由 秩沅 原創 &#x1f636;?&#x1f32b;?收錄于專欄&#xff1a;unity細節和bug &#x1f636;?&#x1f32b;?優質專欄 ?【…

Mybatis Plus中使用LambdaQueryWrapper進行分頁以及模糊查詢對比傳統XML方式進行分頁

傳統的XML分頁以及模糊查詢操作 傳統的XML方式只能使用limit以及offset進行分頁&#xff0c;通過判斷name和bindState是否為空&#xff0c;不為空則拼接條件。 List<SanitationCompanyStaff> getSanitationStaffInfo(Param("name") String name,Param("bi…

前端---需要了解瀏覽器相關知識--瀏覽器請求服務器資源---緩存

知識點1: 掘金1&#xff1a;瀏覽器緩存 掘金2 :瀏覽器緩存 一、瀏覽器緩存 請求&#xff08;靜態資源 &#xff5c; 動態資源&#xff09; 一、緩存是什么&#xff1f; 如果沒有緩存的機制 每次都要重新請求靜態資源 1.從網絡上的下載時間&#xff0c;肯定大于從硬盤里讀的…

【S32K 進階之旅】S32K 芯片的解鎖

在使用 S32K1xx MCU 的過程中&#xff0c;因為某些不當操作導致芯片被鎖、加密的情況偶有發生&#xff0c;在此總結一篇如何解鎖芯片的文檔&#xff0c;希望能夠幫到有需要的人。 1. S32K 芯片被鎖的現象及原因分析1&#xff09;在S32K 系列 MCU 開發和生產過程中&#xff…

mac os M1 安裝并啟動 postgreSQL 的問題

Homebrew 安裝 postgreSQL brew install postgresql啟動 brew services start postgresql但報錯&#xff1a; uninitialized constant Homebrew::Service::System解決方案 brew doctor按照 brew doctor 中的建議進行操作&#xff0c;如果不行&#xff0c;如下&#xff1a; h…

常用系統命令

重定向 cat aa.txt > bbb.txt 將輸出定向到bbb.txt cat aaa.txt >> bbb.txt 輸出并追加查看進程 ps ps -ef 顯示所有進程 例?&#xff1a;ps -ef | grep mysql |&#xff1a;管道符 kill pid 結束進程&#xff0c; 如 kill 3732&#xff1b;根據進程名結束進程可以先…

Qt使用qml(QtLocation)顯示地圖

一、qt版本和QtLocation模塊版本確認 如果qt版本過低的話是沒有QtLocation模塊的&#xff0c;我的版本如下 構建工具版本如下 二、qml代碼編寫 1、工程中添加模塊 首先在工程中添加模塊quickwidgets positioning location 2、添加資源文件 3、在資源文件中添加qml文件 …

Jenkins改造—nginx配置鑒權

先kill掉8082的端口進程 netstat -natp | grep 8082 kill 10256 1、下載nginx nginx安裝 EPEL 倉庫中有 Nginx 的安裝包。如果你還沒有安裝過 EPEL&#xff0c;可以通過運行下面的命令來完成安裝 sudo yum install epel-release 輸入以下命令來安裝 Nginx sudo yum inst…

windows上的docker自動化部署到服務器腳本

1、mvn install后&#xff0c;雙擊這個bat&#xff0c;實現docker build后上傳到124服務器&#xff0c;并且重啟124服務器 **echo offsetlocal:: 定義鏡像名稱和版本變量 set IMAGE_NAMEweb set IMAGE_VERSION1.3.1:: 清理本地文件 echo Cleaning up... del service-%IMAGE_N…