java(二):java的運算和流程控制

java中單引號和雙引號區別和用法

區別1:java中的單引號表示字符,雙引號表示字符串。

區別2:單引號引的數據一般是char類型的;雙引號引的數據 是String類型的。

區別3:java中單引號里面只能放一個字母或數字或符號;java中的雙引號里面是0到多個字符構成。所以字符可以直接轉換成字符串。字符串需要使用charAt(n) 來獲取第幾個字符。

char定義時用單引號,只能有一個字母,數字。char c='c';而String用雙引號,可以是一個,也可能是多個字母,漢字等。就是所謂的字符串。String s="adsaf";

char只是一個基本類型,而String 可以是一個類,可以直接引用。比如char c='c';不能直接對c調用方法。String s="abc"; 這時可以調用s.charAt(0);等方法,因為String是類,這是就是對象的調用了。

一.java 基本語法--運算符

java中常用的算術運算符是:+加、-減、*乘、/除、%取模

其實%運算可以得到兩個數的余數。

一.算術運算符:++自加、--自減。

這兩個運算符比較特殊,請大家思考一下:

int a=90;

a++;????????? 等同于(a=a+1)

這時a等于?91


int b=89;

b--;????????? 等同于(b=b-1)

這時b等于?88


inta=56;

intb=a++;?

System.out.println(b);56

System.out.println(a);57

int b=++a;相當于a=a+1再將b=a;

?int b=a++;相當于b=a再將a=a+1。

算術運算符:+=左加.-=左減./=左除.%=左取模

請大家看看幾個案例,就明白了:

inta=90;

a+=90;?????????? (相當于a=a+90)

請問,a現在等于多少?180

float b=89.7f;

b+=a;??????????? (相當于b=b+a)

請問,b現在等于多少?269.7

int a=56;int b=90;

a-=34;b%=a;?????? (相當于a=a-34,b=b%a)

System.out.println(b);2

System.out.println(a);22

運算符

二.關系運算符

1、==等于;2、>大于;3、<小于;4、>=大于等于;5、<=小于等于;6、!=不等于

案例:

/*請編寫一個程序,該程序可以接收兩個數

(可以是整數,也可是小數)并判斷兩個數是大于?小于?還是等于? */

package day2;

import java.io.*;

import java.io.InputStreamReader;

public class shuru {

? ? public static void main(String []args){

? ? ? ? try{

? ? ? ? ? ? //輸入流從鍵盤接收數

? ? ? ? ? ? InputStreamReader isr = new InputStreamReader(System.in);

? ? ? ? ? ? BufferedReader br = new BufferedReader(isr);

? ? ? ? ? ? //給出提示

? ? ? ? ? ? System.out.println("請輸入第一個數");

? ? ? ? ? ? //從控制臺讀取一行數據

? ? ? ? ? ? String a1 = br.readLine();

? ? ? ? ? ? System.out.println("請輸入第二個數");

? ? ? ? ? ? String a2 = br.readLine();

? ? ? ? ? ? //把String轉float

? ? ? ? ? ? float num1 = Float.parseFloat(a1);

? ? ? ? ? ? float num2 = Float.parseFloat(a2);

? ? ? ? ? ? if(num1>num2){System.out.println("第一個大");}

? ? ? ? ? ? if(num1==num2){System.out.println("相等");}

? ? ? ? ? ? if(num1<num2){System.out.println("第二個大");}

? ? ? ? }catch(Exception e){

? ? ? ? ? ? e.printStackTrace();

? ? ? ? }

? ? }

}

三.運算符--邏輯運算符

用于判斷邏輯關系的運算符

1、&&與;? 2、||或;? 3、!非

&&與的運算關系,真真為真,其它都為假。

||或的運算關系,假假為假,其它都為真。

!非的運算關系,真取假,假取真

二.java基本語法----三大流程控制

1順序控制

聽其名而知其意,讓程序可以順序的執行。

請大家看個案例[demo11.java]:

int a=7;

System.out.println("a="+a);

System.out.println("hello!");

a++;

System.out.println("a="+a);

System.out.println("0(∩_∩)0");

a++;

System.out.println("a="+a);


2分支控制

讓程序有選擇的執行,分支控制有三種:

1、 單分支;2、雙分支;3、多分支a

1、單分支語法:

??? if(條件表達式){

??????? 語句;

??? }


2、雙分支語法:

??? if(條件表達式){

??????? 語句;

??? }else{

??????? 語句;

??? }


3.1、多分支語法:

??? if(條件表達式){

??????? 語句;

??? }else if(條件表達式){

??????? 語句;

??? }else if(條件表達式){

??????? 語句;

??? }else{

??????? 語句;

??? }

3.2、多分支語法:

??? switch(條件表達式){ //***條件表達式數據類型,就和case常量表達式一致,否則就會報錯。

??? case常量1:

??????? 語句1;

??????????? ???? //語句1至break中相當于{}可以加入相應程序代碼

??????? break;? //break,表示跳出switch語句

??? case常量2:

??????? 語句1;

??????? break;

??????? ...

??? case常量n:

??????? 語句n;

??????? break;

??? default:

??????? 語句;

??????? break;

??? }

*****:switch中的可用數據類型主要是:允許byte,short,int,char,enum等


eg:編寫一個程序,可以輸入人的年齡,如果該同志的年齡大于18歲,則輸出“你年齡大于18,要對自己的行業負責,送入監獄”。如果該同志的年齡大于10歲并且小于等于18,則輸出“你的年齡也不小了,把你送少管所”。其它情況,則輸出“小孩子,下次注意”。

package day3;

import java.io.BufferedReader;

import java.io.InputStreamReader;

public class demo2 {

? ? public static void main(String[] args) {

? ? ? ? try{

? ? ? ? InputStreamReader isr =new InputStreamReader(System.in);

? ? ? ? BufferedReader br = new BufferedReader(isr);

? ? ? ? System.out.println("輸入年齡");

? ? ? ? String a1 = br.readLine();

? ? ? ? float num1 = Float.parseFloat(a1);

? ? ? ? if(num1>18){

? ? ? ? ? ? System.out.println("你年齡大于18,要對自己的行業負責,送入監獄");

? ? ? ? }

? ? ? ? else if(num1>10 && num1<=18){

? ? ? ? ? ? System.out.println("你的年齡也不小了,把你送少管所");

? ? ? ? }else{

? ? ? ? ? ? System.out.println("小孩子,下次注意");

? ? ? ? }

? ? ? ? }catch(Exception e){

? ? ? ? ? ? e.printStackTrace();

? ? ? ? }

? ? }

}


對比switch與if語句在執行分支語句的區別。

***switch分支語句不支持判斷類型即boolean類型,switch只支持byte,short,int,char,enum等數據類型

練習:

1、雙分支控制作業.

編寫一個程序,可以輸入人的年齡,如果該同志的年齡大于18歲,則輸出“你年齡大于18歲,要對自己的行為負責!”否則,輸出“你的年齡不大這次放過你了”

package day3;

import java.io.*;

import java.io.BufferedReader;

public class demo01 {

? ? public static void main(String []args){

? ? ? ? try{

? ? ? ? ? ? //接收從鍵盤輸入的數

? ? ? ? ? ? InputStreamReader isr = new InputStreamReader(System.in);

? ? ? ? ? ? BufferedReader br = new BufferedReader(isr);

? ? ? ? ? ? //提示

? ? ? ? ? ? System.out.println("請輸入年齡");

? ? ? ? ? ? //從控制臺讀取一行數據

? ? ? ? ? ? String a1 = br.readLine();

? ? ? ? ? ? //將string轉float

? ? ? ? ? ? float num1 = Float.parseFloat(a1);

? ? ? ? ? ? if(num1<18){

? ? ? ? ? ? ? ? System.out.println("你的年齡是"+num1);

? ? ? ? ? ? }else{

? ? ? ? ? ? ? ? System.out.println("你年齡大于18,要為自己的行為負責!");

? ? ? ? ? ? }

? ? ? ? }catch(Exception e){

? ? ? ? ? ? e.printStackTrace();

? ? ? ? }

? ? }

}

2.多分支控制:

編寫一個程序,可以輸入人的年齡,如果該同志的年齡大于18歲,則輸出“你年齡大于18,要對自己的行業負責,送入監獄”。如果該同志的年齡大于10歲并且小于等于18,則輸出“你的年齡也不小了,把你送少管所”。其它情況,則輸出“小孩子,下次注意”。

package day3;

import java.io.BufferedReader;

import java.io.InputStreamReader;

public class demo2 {

? ? public static void main(String[] args) {

? ? ? ? try{

? ? ? ? InputStreamReader isr =new InputStreamReader(System.in);

? ? ? ? BufferedReader br = new BufferedReader(isr);

? ? ? ? System.out.println("輸入年齡");

? ? ? ? String a1 = br.readLine();

? ? ? ? float num1 = Float.parseFloat(a1);

? ? ? ? if(num1>18){

? ? ? ? ? ? System.out.println("你年齡大于18,要對自己的行業負責,送入監獄");

? ? ? ? }

? ? ? ? else if(num1>10 && num1<=18){

? ? ? ? ? ? System.out.println("你的年齡也不小了,把你送少管所");

? ? ? ? }else{

? ? ? ? ? ? System.out.println("小孩子,下次注意");

? ? ? ? }

? ? ? ? }catch(Exception e){

? ? ? ? ? ? e.printStackTrace();

? ? ? ? }

? ? }

}

3.多分支控制:

請編寫一個程序,該程序可以接收一個字符,比如:a,b,c,d,e,f,g

a表示星期一,b表示星期二...根據用戶的輸入顯示相應的信息,要求使用switch語句完成。

package day3;

import java.io.*;

import java.util.Scanner;

public class demo3 {

? ? public static void main(String[] args){

? ? ? ? try{

? ? ? ? ? ? //根據用戶輸入判斷今天星期幾

? ? ? ? ? ? //請編寫一個程序,該程序可以接收一個字符,比如:a,b,c,d,e,f,g

? ? ? ? ? ? //a表示星期一,b表示星期二 …

? ? ? ? ? ? //根據用戶的輸入顯示相應的信息.要求使用 switch 語句完成

? ? ? ? /*思路分析

? ? ? ? ? ? 1. 接收一個字符 , 創建Scanner對象

? ? ? ? ? ? 2. 使用switch 來完成匹配,并輸出對應信息

? ? ? ? 代碼*/

? ? ? ? ? ? Scanner myScanner = new Scanner(System.in);

? ? ? ? ? ? System.out.println("請輸入一個字符(a-g)");

? ? ? ? ? ? char c1 = myScanner.next().charAt(0);

? ? ? ? ? ? switch(c1){

? ? ? ? ? ? ? ? case 'a':

? ? ? ? ? ? ? ? ? ? System.out.println("周一");

? ? ? ? ? ? ? ? ? ? break;

? ? ? ? ? ? ? ? case 'b':

? ? ? ? ? ? ? ? ? ? System.out.println("周二");

? ? ? ? ? ? ? ? ? ? break;

? ? ? ? ? ? ? ? case 'c':

? ? ? ? ? ? ? ? ? ? System.out.println("周三");

? ? ? ? ? ? ? ? ? ? break;

? ? ? ? ? ? ? ? case 'd':

? ? ? ? ? ? ? ? ? ? System.out.println("周四");

? ? ? ? ? ? ? ? ? ? break;

? ? ? ? ? ? ? ? case 'e':

? ? ? ? ? ? ? ? ? ? System.out.println("周五");

? ? ? ? ? ? ? ? ? ? break;

? ? ? ? ? ? ? ? case 'f':

? ? ? ? ? ? ? ? ? ? System.out.println("周六");

? ? ? ? ? ? ? ? ? ? break;

? ? ? ? ? ? ? ? case 'g':

? ? ? ? ? ? ? ? ? ? System.out.println("周日");

? ? ? ? ? ? ? ? ? ? break;

? ? ? ? ? ? ? ? default:

? ? ? ? ? ? ? ? ? ? System.out.println("請輸入a-g");

? ? ? ? ? ? }

? ? ? ? }catch(Exception e){

? ? ? ? ? ? e.printStackTrace();

? ? ? ? }

? ? }

}


3循環控制

聽其名而知其意,就是讓你的代碼可以循環的執行。

循環控制有三種

1、for循環語法:

??? for(循環初值;循環條件;步長){

??????? 語句;?//循環體

??? }

2、while循環語法:

??? while(循環條件){

??????? 語句;?//循環體

??? }

特別說明:while循環是先判斷在執行語句。


3、do

while循環 語法:

??? do{

??????? 語句;?//循環體

??? }while(循環條件);

特別說明:do while循環是先執行,再判斷。


eg:寫一個三角形

package day3;

//請編寫一個程序,可以接收一個整數,表示層數,打印出金字塔一半

public class demo4 {

? ? public static void main(String []args){

? ? ? ? int lay =4;

? ? ? ? //lay表示層數

? ? ? ? for(int i=1;i<=lay;i++){

? ? ? ? ? ? //print

? ? ? ? ? ? for(int j=1;j<=i;j++){

? ? ? ? ? ? ? ? System.out.print("*");

? ? ? ? ? ? }

? ? ? ? ? ? System.out.println("\n");

? ? ? ? }

? ? }

}

注意System.out.print()和System.out.println()的區別


eg:金字塔

package day3;

public class demo5 {

? ? public static void main(String []args){

? ? ? ? int lay = 4;

? ? ? ? for(int i=1;i<=lay;i++){

? ? ? ? ? ? //規律 ?

? ? ? ? ? ? //1=>3 2=>2 3=>1 4=>0 空格的規律

? ? ? ? ? ? for(int k=1;k<=lay-i;k++){

? ? ? ? ? ? ? ? System.out.print(" ");

? ? ? ? ? ? }

? ? ? ? ? ? //print *

? ? ? ? ? ? //1=>1 2=>3 3=>5 ?4=>7*的規律

? ? ? ? ? ? for(int j=1;j<=(i-1)*2+1;j++){

? ? ? ? ? ? ? ? System.out.print("*");

? ? ? ? ? ? }

? ? ? ? ? ? System.out.println();

? ? ? ? }

? ? }

}


eg:鏤空金字塔

public class?demo6{

??? public static void main(String []args){

??????? int lay=10;//表示有多少層

??????? for(int i=1;i<=lay;i++){

??????? ??? //找出規律

??????????? //1->32->2 3->1 4->0找出空格

??????????? for(int k=1;k<=lay-i;k++){

??????????? System.out.print("");

??????????? }

??????? ??? //打印*

??????????? //1->12->3 3->5 4->7找出星的規律

??????? ??? for(int j=1;j<=(i-1)*2+1;j++){

??????????????? //判斷該層是否是頂層或者是底層

??????????? ??? if(i==1||i==lay){

??????????????? System.out.print("*");

??????????????? }else{

??????????????????? //如果是第一個*

??????? ??????????? if(j==1 || j==(i-1)*2+1){

??????????????????? System.out.print("*");

??????????????????? }else{

??????????????????????? System.out.print("");

??????????????????? }

??????????????? }

??????????? }

??????? ??? System.out.println();//換行

??????? }

??? }

}


eg:空心菱形

public class Demo7{

??? public static void main(String []args){

??????? int lay=4;//菱形上半部行數

??????? for(int i=1;i<=lay-1;i++){//判斷循環上半部分

??????????? for(int k=1;k<=lay-i;k++){//找行內*號前輸出空格

??????????????? System.out.print("");

??????????? }

??????????? for(int j=1;j<=(i-1)*2+1;j++){//找行內輸出星的位置

??????????????? if(j==1||j==(i-1)*2+1){? //判斷行最小長度和最大長度,并在最小長度和最大長度上輸出*號,行內輸入出空格。

??????????????????? System.out.print("*");

??????????????? }else{

??????????????????? System.out.print("");

??????????????? ?}

??????????? }

??????????? System.out.println();//換行

??????? }

??????? for(int i=1;i<=lay;i++){?//判斷循環菱形下半部分

??????????? for(int k=1;k<=i-1;k++){//判斷循環找*號前要輸出空格處

??????????? ??? System.out.print(" ");

??????????? }

??????????? for(int j=1;j<=(lay-i)*2+1;j++){//判斷循環行長度

??????????????? if(j==1||j==(lay-i)*2+1){//判斷行最小長度和最大長度,并在最小長度和最大長度上輸出*號,行內輸入出空格。

??????????????????? System.out.print("*");

??????????????? }else{

??????????????????? System.out.print("");

??????????????? ?}

??????????? }

??????????? System.out.println();//輸出換行

??????? }

??? }

}


eg:實心菱形

public class Demo104{

??? publicstatic void main(String []args){

??????? intlay=4;//菱形上半部行數

??????? for(inti=1;i<=lay-1;i++){ //判斷循環上半部分

??????????? for(intk=1;k<=lay-i;k++){//找行內*號前輸出空格

??????????????? System.out.print("");

??????????? }

??????????? for(intj=1;j<=(i-1)*2+1;j++){//找行內輸出星的位置

??????????????? System.out.print("*");

??????????? }

??????????? System.out.println();//換行

??????? }

??????? for(inti=1;i<=lay;i++){? //判斷循環菱形下半部分

??????????? for(intk=1;k<=i-1;k++){//判斷循環找*號前要輸出空格處

??????????????? System.out.print("");

??????????? }

??????????? for(intj=1;j<=(lay-i)*2+1;j++){//判斷循環行長度

??????????????? System.out.print("*");

??????????? }

??????????? System.out.println();//輸出換行

??????? }

??? }

}




喜歡的朋友記得點贊、收藏、關注哦!!!

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

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

相關文章

Android envsetup與Python venv使用指南

Android envsetup 和 Python venv 是兩種完全不同的環境配置工具&#xff0c;分別服務于不同的開發場景。以下是對它們的詳細解釋及使用方法&#xff1a; 1. Android envsetup 用途&#xff1a; Android envsetup 是 Android 源碼開發中的環境配置腳本&#xff08;envsetup.sh…

游戲引擎學習第222天

回顧昨天的過場動畫工作 我們正在制作一個游戲&#xff0c;目標是通過直播的方式完成整個游戲的開發。在昨天的工作中&#xff0c;我享受了制作過場動畫的過程&#xff0c;所以今天我決定繼續制作多個層次的過場動畫。 昨天我們已經開始了多層次過場動畫的基本制作&#xff0…

Leedcode刷題 | Day31_貪心算法05

一、學習任務 56. 合并區間代碼隨想錄738. 單調遞增的數字968. 監控二叉樹 二、具體題目 1.56合并區間56. 合并區間 - 力扣&#xff08;LeetCode&#xff09; 給出一個區間的集合&#xff0c;請合并所有重疊的區間。 示例 1: 輸入: intervals [[1,3],[2,6],[8,10],[15,1…

app逆向專題五:新快報app數據采集

app逆向專題五:新快報app數據采集 一、抓包尋找數據接口二、編寫代碼三、完整代碼一、抓包尋找數據接口 打開charles,并在手機端打開新快報app,點擊“廣州”或者“經濟”等選項卡,抓包,尋找數據接口,如圖所示: 二、編寫代碼 這里介紹一種簡便的代碼編寫方法,在數據…

Java面試黃金寶典45

1. 非對稱加密 RSA 定義:RSA 是一種廣泛使用的非對稱加密算法,其安全性基于大整數分解的困難性。它使用一對密鑰,即公鑰和私鑰。公鑰可公開用于加密消息,而私鑰必須保密,用于解密由相應公鑰加密的消息。要點: 公鑰公開,私鑰保密,二者成對出現。加密和解密使用不同的密鑰…

提權實戰!

就是提升權限&#xff0c;當我們拿到一個shell權限較低&#xff0c;當滿足MySQL提權的要求時&#xff0c;就可以進行這個提權。 MySQL數據庫提權&#xff08;Privilege Escalation&#xff09;是指攻擊者通過技術手段&#xff0c;從低權限的數據庫用戶提升到更高權限&#xff…

在虛擬機上修改saprk的版本

之前安裝的spark版本是3.4&#xff0c;現在實驗需要的版本是2.4。現在需要更改spark的版本。 方法很簡單&#xff1a; 直接將原有的spark3.4的文件刪除&#xff0c;再安裝2.4版本。 安裝過程之后再寫。Spark2.1.0入門&#xff1a;Spark的安裝和使用_廈大數據庫實驗室博客

文獻分享: DESSERT基于LSH的多向量檢索(Part3.2.外部聚合的聯合界)

原論文 文章目錄 1. \textbf{1. } 1. 定理 4.2 \textbf{4.2} 4.2的內容 1.1. \textbf{1.1. } 1.1. 一些符號 1.2. \textbf{1.2. } 1.2. 定理內容 3. \textbf{3. } 3. 聯合界限 Ps. \textbf{Ps. } Ps. 運行時間分析 1. \textbf{1. } 1. 定理 4.2 \textbf{4.2} 4.2的內容 1.1. \t…

MIPI協議介紹

MIPI協議介紹 mipi 協議分為 CSI 和DSI,兩者的區別在于 CSI用于接收sensor數據流 DSI用于連接顯示屏 csi分類 csi 分為 csi2 和 csi3 csi2根據物理層分為 c-phy 和 d-phy, csi-3采用的是m-phy 一般采用csi2 c-phy 和 d-phy的區別 d-phy的時鐘線和數據線是分開的,2根線一對…

【中間件】nginx反向代理實操

一、說明 nginx用于做反向代理&#xff0c;其目標是將瀏覽器中的請求進行轉發&#xff0c;應用場景如下&#xff1a; 說明&#xff1a; 1、用戶在瀏覽器中發送請求 2、nginx監聽到瀏覽器中的請求時&#xff0c;將該請求轉發到網關 3、網關再將請求轉發至對應服務 二、具體操作…

在3ds Max中視口顯示為黑色或深灰色

在3ds Max中視口顯示為黑色或深灰色 Autodesk Support 2023年10月8日 涵蓋的產品和版本 問題&#xff1a; 在3ds Max中&#xff0c;使用“深”UI方案時視口顯示為完全黑色&#xff0c;使用“淺”UI方案時視口顯示為深灰色。 原因&#xff1a; 已為用戶界面禁用Gamma校正。…

Vue.js 中 v-if 的使用及其原理

在 Vue.js 的開發過程中&#xff0c;條件渲染是一項極為常見的需求。v-if指令作為 Vue.js 實現條件渲染的關鍵手段&#xff0c;能夠根據表達式的真假來決定是否渲染某一塊 DOM 元素。它在優化頁面展示邏輯、提升用戶體驗等方面發揮著重要作用。接下來&#xff0c;我們就深入探討…

Verilog:LED呼吸燈

模塊接口說明 信號方向描述clk輸入系統時鐘&#xff08;100MHz&#xff0c;周期10ns&#xff09;rst_n輸入低電平有效的異步復位信號led_en輸入總使能信號&#xff08;1開啟呼吸燈&#xff0c;0關閉&#xff09;speed_en輸入呼吸速度調節使能信號speed[2:0]輸入呼吸速度分級&a…

我的計算機網絡(總覽篇)

總覽--網絡協議的角度 在一個龐大的網絡中&#xff0c;該從哪里去了解呢&#xff1f;我先細細的講一下我們訪問一個網站的全部流程&#xff0c;當我們的電腦連上網絡的時候&#xff0c;就會啟動DHCP協議&#xff0c;來進行IP地址&#xff0c;MAC地址&#xff0c;DNS地址的分配…

開源的PMPI庫實現及示例代碼

開源的PMPI庫實現及示例代碼 PMPI (Profiling MPI) 是MPI標準中定義的接口&#xff0c;允許開發者通過攔截MPI調用進行性能測量和調試。以下是幾個常用的開源PMPI庫實現&#xff1a; 1. MPICH的PMPI接口 MPICH本身提供了PMPI接口&#xff0c;可以直接使用。 2. OpenMPI的PM…

Unity 基于navMesh的怪物追蹤慣性系統

今天做項目適合 策劃想要實現一個在現有的怪物追蹤系統上實現怪物擁有慣性功能 以下是解決方案分享&#xff1a; 怪物基類代碼&#xff1a; ? using UnityEngine; using UnityEngine.AI;[RequireComponent(typeof(NavMeshAgent))] [RequireComponent(typeof(AudioSource))] …

PyTorch進階學習筆記[長期更新]

第一章 PyTorch簡介和安裝 PyTorch是一個很強大的深度學習庫&#xff0c;在學術中使用占比很大。 我這里是Mac系統的安裝&#xff0c;相比起教程中的win/linux安裝感覺還是簡單不少&#xff08;之前就已經安好啦&#xff09;&#xff0c;有需要指導的小伙伴可以評論。 第二章…

【區塊鏈安全 | 第三十八篇】合約審計之獲取私有數據(二)

文章目錄 前言漏洞代碼代碼審計攻擊步驟修復/開發建議審計思路前言 在【區塊鏈安全 | 第三十七篇】合約審計之獲取私有數據(一)中,介紹了私有數據、訪問私有數據實例、Solidity 中的數據存儲方式等知識,本文通過分析具體合約代碼進行案例分析。 漏洞代碼 // SPDX-Licens…

《微服務與事件驅動架構》讀書分享

《微服務與事件驅動架構》讀書分享 Building Event-Driver Microservices 英文原版由 OReilly Media, Inc. 出版&#xff0c;2020 作者&#xff1a;[加] 亞當 ? 貝勒馬爾 譯者&#xff1a;溫正東 作者簡介&#xff1a; 這本書由亞當貝勒馬爾&#xff08;Adam Bellemare…

小剛說C語言刷題——第22講 二維數組

昨天我們講了一維數組&#xff0c;今天我們來講二維數組。 1.定義 二維數組是指在數組名后跟兩個方括號的數組。 2.語法格式 數據類型 數組名[下標][下標] 例如&#xff1a;int a[5][9];//表示5行9列的數組 3.訪問二維數組元素 格式&#xff1a;數組名[行坐標][列坐標]…