java学习笔记2(datawhale教程):运算符和表达式、流程控制、数组
java學(xué)習(xí)筆記2(datawhale教程):運(yùn)算符和表達(dá)式、流程控制、數(shù)組
文章目錄
- java學(xué)習(xí)筆記2(datawhale教程):運(yùn)算符和表達(dá)式、流程控制、數(shù)組
- 一.運(yùn)算符和表達(dá)式
- 1.數(shù)學(xué)函數(shù)與常量
- 2.結(jié)合賦值和運(yùn)算符
- 3.自增與自減運(yùn)算符
- 4.關(guān)系和Boolean運(yùn)算符
- 5.運(yùn)算符優(yōu)先級
- 二.控制流程
- 1.塊作用域
- 2.條件語句(if 、else)
- 3.循環(huán)(while 、do while)
- 4.確定循環(huán)(for 循環(huán))
- 5.中斷控制流程語句
- 6.選擇語句(switch)
- 三.數(shù)組
- 1.數(shù)組的定義與初始化
- 2.for-each循環(huán)
- 3.多維數(shù)組(二維數(shù)組為例)
- 創(chuàng)建二維數(shù)組
- 賦值
- 來點(diǎn)好玩的遍歷!
- 4.不規(guī)則數(shù)組
- 還是來個好玩的遍歷
- 四.遇到的問題
- 1.for each
- 2.數(shù)組越界
public static void main 是什么意思?
【IntelliJ IDEA】IDEA自動生成文檔注釋的設(shè)置方法
一.運(yùn)算符和表達(dá)式
| + | 加 |
| - | 減 |
| * | 乘 |
| / | 除 ,兩個操作數(shù)都是整數(shù)時,表示整除法;否則表示浮點(diǎn)除法 |
| % | 整數(shù)取余 |
1.數(shù)學(xué)函數(shù)與常量
-
數(shù)學(xué)函數(shù)包含在Math類中
Math 的方法都被定義為 static 形式,通過 Math 類可以在主函數(shù)中直接調(diào)用
-
一些常用的如:
-
求平方根:
額,草率了
package com.apache.test;public class HelloWorld { // enum Size {SMALL,MEDIUM,LARGE,EXTRA_LARGE}; // Size s = Size.MEDIUM;public static void main(String[] args){double x = 4;double y = Math.sqrt(x);System.out.println(y);} } -
冪運(yùn)算
pow方法有兩個double類型的參數(shù),其返回結(jié)果也為double類型
package com.apache.test;public class HelloWorld { // enum Size {SMALL,MEDIUM,LARGE,EXTRA_LARGE}; // Size s = Size.MEDIUM;public static void main(String[] args){double x=2;double a=3;double y=Math.pow(x,a);System.out.println(y);} }y為x的a次方
-
三角函數(shù)
public class HelloWorld {public static void main (String []args){System.out.println("45 度的正弦值:" + Math.sin(Math.PI/4));System.out.println("0度的余弦值:" + Math.cos(0));System.out.println("60度的正切值:" + Math.tan(Math.PI/3));System.out.println("1的反正切值: " + Math.atan(1));System.out.println(Math.PI);} }
-
-
若不想添加前綴Math,就在源文件頂部添加代碼:import static java.lang.Math.*;
package com.apache.test; import static java.lang.Math.*; public class HelloWorld {public static void main (String []args){System.out.println("45 度的正弦值:" + sin(Math.PI/4));System.out.println("0度的余弦值:" + cos(0));System.out.println("60度的正切值:" + tan(Math.PI/3));System.out.println("1的反正切值: " + atan(1));System.out.println(Math.PI);} }
2.結(jié)合賦值和運(yùn)算符
+=、*=、%=
package com.apache.test; import static java.lang.Math.*; public class HelloWorld {public static void main (String []args){int x=1;x+=4;//等價于x=x+4int y=1;y=y+4;System.out.println(x);System.out.println(y);} }3.自增與自減運(yùn)算符
package com.apache.test; public class HelloWorld {public static void main (String []args){int m = 7;int n = 7;int a = 2* ++m;int b = 2* n--;System.out.println("a="+a);System.out.println("b="+b);} }4.關(guān)系和Boolean運(yùn)算符
下面演示==,!=,&&(邏輯與),||(邏輯或),x?y:z(三目運(yùn)算符)等運(yùn)算符
package com.apache.test; public class HelloWorld {public static void main (String []args){int x=3;int y=7;System.out.println(3==7); //返回falseSystem.out.println(3<7); //返回trueSystem.out.println((3<7)&&(3>7)); //返回falseSystem.out.println((3<7)||(3>7)); //返回trueSystem.out.println((3>7)?3:7);System.out.println((3!=7)?3:7);} }位運(yùn)算符就暫時不探究了 (流下懶狗的眼淚)
5.運(yùn)算符優(yōu)先級
二.控制流程
- 用條件語句和循環(huán)結(jié)構(gòu)來確定控制流程
1.塊作用域
- 塊由一對大括號括起來的語句
- 塊確定了變量的作用域
- 一個塊可以嵌套在另外一個塊里面
- 但是不能在嵌套的兩個快中聲明相同名的變量
2.條件語句(if 、else)
和之前的C++區(qū)別不大
package com.apache.test; public class HelloWorld {/**** @param args*/public static void main (String []args){int x = 31;if( x == 10 ){System.out.print(" X is 10");}else if( x == 20 ){System.out.print(" X is 20");}else if( x == 30 ){System.out.print(" X is 30");}else{System.out.print("這是 else 語句");}} }3.循環(huán)(while 、do while)
和之前的C++區(qū)別不大
4.確定循環(huán)(for 循環(huán))
和之前的C、C++區(qū)別也不大 😂
5.中斷控制流程語句
continue、break
6.選擇語句(switch)
語法和之前的C、C++區(qū)別還是不大
case 、default
別忘了加break
三.數(shù)組
1.數(shù)組的定義與初始化
-
聲明數(shù)組變量
dataType[] arrayRefVar; //首選的方法 dataType arrayRefVar[]; //效果相同,但不是首選下面那種是來自C/C++風(fēng)格的聲明數(shù)組的形式, 首選上面那種JAVA風(fēng)格的
-
創(chuàng)建數(shù)組
接著上面的聲明數(shù)組變量
-
new操作符
arrayRefVar = new dataType[arraySize]; //元素上面的語法完成了兩件事:
- 用dataType[arraySize]創(chuàng)建了一個數(shù)組
- 把新創(chuàng)建的數(shù)組的引用賦值給變量arrayRefVar
-
-
聲明和創(chuàng)建數(shù)組一條語句完成
-
格式1
元素類型[] 數(shù)組名 = new 元素類型[元素個數(shù)或數(shù)組長度]; dataType[] arrayRefVar = new dataType[arraySize]; -
格式2
元素類型[] 數(shù)組名 = new 元素類型[]{元素,元素,……}; 元素類型[] 數(shù)組名 = {元素,元素,……}; dataType[] arrayRefVar = {value0,value1,...,valuek};
和C語言一樣:索引從0開始,索引值從 0 到 arrayRefVar.length-1
-
-
來看些例子呀
package com.apache.test; public class HelloWorld {/**** @param args*/public static void main (String []args){double[] myList; //首選double myList2[]; //非首選int[] arr1 = new int[5];float[] arr2 = new float[5];int[] arr3 = new int[]{3,5,1,7};double[] arr4 = {1.3,1.1,1.5,1.7};float[] arr5 = new float[]{1.9f,1.1f,1.5f,1.7f};int[] arr6 ;arr6 =new int[2];arr6[0] = 1;arr6[1] = 2;for(int i=0;i<arr4.length;i++){System.out.println(arr4[i]);}for(int j=0;j<arr5.length;j++){System.out.println(arr5[j]);}for(int k=0;k<arr6.length;++k){System.out.println(arr6[k]);}} } -
注意下面這種錯誤寫法
數(shù)組初始化中一定要用運(yùn)算符new
一開始float一個數(shù)組遇到報錯,查了一下:
2.for-each循環(huán)
也叫加強(qiáng)型循環(huán),用于在不使用下標(biāo)的情況下遍歷數(shù)組
-
語法格式
for(數(shù)據(jù)類型 element: 數(shù)組名){System.out.println(element); } double[] myList=new double[]{1.1,1.2,1.5,1.9,2.1,3.3,3.5,9.9};// for(double element:myList) // { // double i=1.0; // element=i; // ++i; // // }for(double elem : myList){System.out.println(elem);}
3.多維數(shù)組(二維數(shù)組為例)
創(chuàng)建二維數(shù)組
同一維數(shù)組一樣,二維數(shù)組在聲明時也沒有分配內(nèi)存空間,同樣要使用關(guān)鍵字new來分配內(nèi)存,然后才可以訪問每個元素
-
通過例子來看兩種聲明方式和分配內(nèi)存的方式
//直接分配行列 int a[][]; a = new int[2][4];//先分配行,再分配列 int[][] b; //另一種聲明方式 b = new int[2][]; b[0] = new int[2]; //給第一行分配列 b[1] = new int[2]; //給第二行分配列 -
聲明和創(chuàng)建數(shù)組一起
//直接分配行列 int a[][] = new int[2][]; a[0] = new int[3]; a[1] = new int[3]; -
注意點(diǎn)
賦值
-
來看三種初始化的方式
public static void main (String []args) {int tdarr1[][]={{1,3},{5,9}};int tdarr2[][]=new int[][]{{1,3},{5,9}};//先給數(shù)組分配內(nèi)存空間int tdarr3[][]=new int[2][3];tdarr3[0] = new int[] {6,54,71}; //給第一行分配一個一維數(shù)組tdarr3[1][0]=1;tdarr3[1][1]=2;tdarr3[1][2]=4;}
來點(diǎn)好玩的遍歷!
package com.apache.test; public class HelloWorld {/**** @param args*/public static void main (String []args){char arr[][]= new char[8][];//8行的二維數(shù)組arr[0] = new char[]{'錦','瑟','無','端','五','十','弦'};arr[1] = new char[]{'一','弦','一','柱','思','華','年'};arr[2] = new char[]{'莊','生','曉','夢','迷','蝴','蝶'};arr[3] = new char[]{'望','帝','春','心','托','杜','鵑'};arr[4] = new char[]{'滄','海','月','明','珠','有','淚'};arr[5] = new char[]{'藍(lán)','田','日','暖','玉','生','煙'};arr[6] = new char[]{'此','情','可','待','成','追','憶'};arr[7] = new char[]{'只','是','當(dāng)','時','已','惘','然'};System.out.println("-----橫版-----");for(int i=0;i<8;i++){for(int j=0;j<7;j++){System.out.print(arr[i][j]+" ");//System.out.print 不換行//System.out.println 換行}if(i%2 == 0){System.out.println(",");}else {System.out.println("。");}}System.out.println("-----豎版-----");for(int j=0;j<7;j++){for(int i=7;i>=0;i--){System.out.print(arr[i][j]+" ");}System.out.println(" ");}System.out.println("。 , 。 , 。 , 。 ,"); // 輸出最后的標(biāo)點(diǎn)/*錦瑟無端五十弦,一弦一柱思華年。莊生曉夢迷蝴蝶,望帝春心托杜鵑。滄海月明珠有淚,藍(lán)田日暖玉生煙。此情可待成追憶,只是當(dāng)時已惘然。*/} }4.不規(guī)則數(shù)組
還是來個好玩的遍歷
下面用了普通循環(huán)和for each循環(huán)
package com.apache.test; public class HelloWorld {/**** @param args*/public static void main (String []args){char arr[][]= new char[4][];//4行的二維數(shù)組,不指定列數(shù)arr[0] = new char[]{'眾','里','尋','他','千','百','度'}; //第一行分配7個元素arr[1] = new char[]{'驀','然','回','首'}; //第二行分配4個元素arr[2] = new char[]{'那','人','卻','在'}; //第三行分配4個元素arr[3] = new char[]{'燈','火','闌','珊','處'}; //第四行分配5個元素/*眾里尋他千百度,驀然回首,那人卻在,燈火闌珊處。*/for(int i=0;i<arr.length;i++){for(int j=0;j<arr[i].length;j++){System.out.print(arr[i][j]+" ");}System.out.println(" ");} //for each循環(huán)for(int i=0;i<arr.length;i++){for(char temp: arr[i]){System.out.print(temp+" ");}System.out.println(" ");}} }- 注意上面代碼中:
- arr.length返回的是數(shù)組的行數(shù)
- arr[i].length返回的是第i+1行的列數(shù)
- 由于二維數(shù)組可能是不規(guī)則數(shù)組,所以每一行的列數(shù)量可能不相同,因此在遍歷二維數(shù)組時,最好使用數(shù)組的length屬性控制循環(huán)次數(shù),而不是用某他變量或常量。
四.遇到的問題
1.for each
有個?問題
好像for-each只能用于遍歷打印?
我寫了這個賦值的循環(huán)發(fā)現(xiàn)沒有效果
2.數(shù)組越界
查了一下原因,是數(shù)組越界了
原來是因?yàn)槠哐月稍姳晃腋愠闪税搜浴?/p>
總結(jié)
以上是生活随笔為你收集整理的java学习笔记2(datawhale教程):运算符和表达式、流程控制、数组的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: moocpython程序设计答案_中国大
- 下一篇: 爬取链家北京租房数据并做简单分析