04.Java语言基本语法之程序控制、一维数组和多维数组
2017-11-16 16:04
429 查看
---2.7程序流程控制:
①顺序结构:程序从上到下逐行执行,中间没有任何判断和跳转;
②分支结构:根据条件,选择性地执行某段代码,有if/else和switch两种分支语句;
③循环结构:根据循环条件,重复性的执行某段代码;有while、do/while、for三种循环语句。
[JDK1.5提供了for/each循环,方便遍历集合、数组元素]。
-----
Scanner sc = new Scanner(System.in);
String s = sc.next();=sc.nextLine();
int i1 = sc.nextInt();//依次从键盘输入三个整数
int i2 = sc.nextInt();
int i3 = sc.nextInt();
---2.10switch-case的使用:
·变量的类型:char、byte、short、int、枚举、String(JDK1.7)
---3.2 for循环结构的使用:
循环语句的4个组成部分:
①初始化部分(init_statement)
②循环条件部分(test_exp)
③循环体部分(body_statement)
④迭代部分( alert_statement);
---3.9 break和continue关键字的使用:
break:结束当前循环;
continue:结束当次循环;
for(int i=1;i<10;i++){
if(i%4==0){
//break;//结果是1,2,3
continue;//结果是1,2,3,5,6,7,9
}System.out.print(i);
}
---3.12一维数组的使用:
数组:数组是多个相同类型数据的组合,实现对这些数据的统一管理;数组中的元素可以是任何数据类型,包括基本数据类型和引用数据类型;数组属于引用类型,数组型数据是对象(Object),数组中的每个元素相当于该对象的成员变量;
--初始化:
①静态初始化:初始化数组与给数组元素赋值同时进行:
String[] names=new String[]{"张三","李四","王五"};
②动态初始化:
int scores[]=new int[4];
scores[0]=98;
scores[1]=99;
scores[3]=83;
数组的长度:length属性:names.length;
---4.2数组元素的默认初始化值:
基本数据类型short、int、long默认值为0,char为空格,float和double为0.0;boolean为false;
引用类型的变量构成的数组而言,默认初始值为null;
[数组一旦初始化,其长度是不可变的;集合有一个比较好的实现类,可以解决这个弊端。]
---4.3一维数组的内存结构:
栈stack:用于存放局部变量或对象的引用;
堆heap:new出来的东西,比如说数组、对象;
方法区:程序里面的类名、包名、方法的定义;内有常量池(字符串常量池);
静态域:静态的变量,static修饰的;
---4.5一维数组的练习:
[生成随机数:Math.random(),返回值类型double;
四舍五入取整:Math.round(double d),返回值类型long];
---4.9数组常见异常:
①java.lang.ArrayIndexOutOfBoundsException数组下标越界;
②java.lang.NullPointerException空指针异常;
---4.10二维数组的练习:
一维数组:int[] x或者int x[];
二维数组:int[][] y或者int[] y[]或者int y[][]
·Java中多维数组不必都是规则矩阵形式;
[注意特殊写法:int[]x,y[];x是一维数组,y是二维数组;
int[] x,y[];
//int[] x;//一维数组
//int[] y[];//二维数组
y=new int[3][2];
x=y[0];
x[0]=y[1][2];
声明int[] x,y[];以下选项允许通过编译的是:
a) x[0]=y; //false;
b) y[0]=x; //true;
c) y[0][0]=x; //false;
d) x[0][0]=y; //false;
e) y[0][0]=x[0]; //true;
f) x=y; //false;]
---4.11二维数组的练习之杨辉三角:
杨辉三角和二项式定理的系数一一对应:
(a+b)^n=Cn0a^nb^0+Cn1a……
①第一行有1个元素,第n行有n个元素;
②每一行的第一个元素和最后一个元素都是1;
③从第三行开始,对于非第一个元素和非最后一个元素的元素:yanghui[i][j]=yanghui[i-1][j-1]+yanghui[i-1][j];
//①初始化二维数组;
int[][] yh=new int[10][];//打印10行杨辉三角
for(int i=0;i<yh.length;i++){
yh[i]=new int[i+1];}
//②显式的为二维数组的每个元素赋值;
for(int i=0;i<yh.length;i++){
for(int j=0;j<yh[i].length;i++){
yh[i][0]=yh[i][i]=1;
if(i>1&&j>0&&j<i){
yh[i][j]=yh[i-1][j-1]+yh[i-1][j];
}}}
//③遍历打印二维数组
---4.12数组的常用算法:
①数组元素的最大值、最小值和平均值、总和等;
②数组的复制、反转
③数组元素的排序
Ctrl+Shift+f-->格式化文本格式
[int[] arr1,arr2;
arr1=new int[]{2,3,5,6,1,4,5};
arr2=arr1;//这样赋值arr2之后对arr2进行动态修改数组内值,其结果也会同样作用到arr1上;这涉及到值传递,此时System.out.println(arr1)的结果是“[I@64ea66”,是其在堆空间的地址,同样打印arr2也是同样结果,因为在赋值过程中把地址值传递过去了];
---4.13数组排序:
①插入排序:直接插入排序、折半插入排序、Shell排序;
②交换排序:冒泡排序、快速排序(或分区交换排序);
③选择排序:简单选择排序、堆排序
④归并排序
⑤基数排序
直接使用util包下的Arrays.sort(数组)方法;
①顺序结构:程序从上到下逐行执行,中间没有任何判断和跳转;
②分支结构:根据条件,选择性地执行某段代码,有if/else和switch两种分支语句;
③循环结构:根据循环条件,重复性的执行某段代码;有while、do/while、for三种循环语句。
[JDK1.5提供了for/each循环,方便遍历集合、数组元素]。
-----
Scanner sc = new Scanner(System.in);
String s = sc.next();=sc.nextLine();
int i1 = sc.nextInt();//依次从键盘输入三个整数
int i2 = sc.nextInt();
int i3 = sc.nextInt();
---2.10switch-case的使用:
·变量的类型:char、byte、short、int、枚举、String(JDK1.7)
---3.2 for循环结构的使用:
循环语句的4个组成部分:
①初始化部分(init_statement)
②循环条件部分(test_exp)
③循环体部分(body_statement)
④迭代部分( alert_statement);
---3.9 break和continue关键字的使用:
break:结束当前循环;
continue:结束当次循环;
for(int i=1;i<10;i++){
if(i%4==0){
//break;//结果是1,2,3
continue;//结果是1,2,3,5,6,7,9
}System.out.print(i);
}
---3.12一维数组的使用:
数组:数组是多个相同类型数据的组合,实现对这些数据的统一管理;数组中的元素可以是任何数据类型,包括基本数据类型和引用数据类型;数组属于引用类型,数组型数据是对象(Object),数组中的每个元素相当于该对象的成员变量;
--初始化:
①静态初始化:初始化数组与给数组元素赋值同时进行:
String[] names=new String[]{"张三","李四","王五"};
②动态初始化:
int scores[]=new int[4];
scores[0]=98;
scores[1]=99;
scores[3]=83;
数组的长度:length属性:names.length;
---4.2数组元素的默认初始化值:
基本数据类型short、int、long默认值为0,char为空格,float和double为0.0;boolean为false;
引用类型的变量构成的数组而言,默认初始值为null;
[数组一旦初始化,其长度是不可变的;集合有一个比较好的实现类,可以解决这个弊端。]
---4.3一维数组的内存结构:
栈stack:用于存放局部变量或对象的引用;
堆heap:new出来的东西,比如说数组、对象;
方法区:程序里面的类名、包名、方法的定义;内有常量池(字符串常量池);
静态域:静态的变量,static修饰的;
---4.5一维数组的练习:
[生成随机数:Math.random(),返回值类型double;
四舍五入取整:Math.round(double d),返回值类型long];
---4.9数组常见异常:
①java.lang.ArrayIndexOutOfBoundsException数组下标越界;
②java.lang.NullPointerException空指针异常;
---4.10二维数组的练习:
一维数组:int[] x或者int x[];
二维数组:int[][] y或者int[] y[]或者int y[][]
·Java中多维数组不必都是规则矩阵形式;
[注意特殊写法:int[]x,y[];x是一维数组,y是二维数组;
int[] x,y[];
//int[] x;//一维数组
//int[] y[];//二维数组
y=new int[3][2];
x=y[0];
x[0]=y[1][2];
声明int[] x,y[];以下选项允许通过编译的是:
a) x[0]=y; //false;
b) y[0]=x; //true;
c) y[0][0]=x; //false;
d) x[0][0]=y; //false;
e) y[0][0]=x[0]; //true;
f) x=y; //false;]
---4.11二维数组的练习之杨辉三角:
杨辉三角和二项式定理的系数一一对应:
(a+b)^n=Cn0a^nb^0+Cn1a……
①第一行有1个元素,第n行有n个元素;
②每一行的第一个元素和最后一个元素都是1;
③从第三行开始,对于非第一个元素和非最后一个元素的元素:yanghui[i][j]=yanghui[i-1][j-1]+yanghui[i-1][j];
//①初始化二维数组;
int[][] yh=new int[10][];//打印10行杨辉三角
for(int i=0;i<yh.length;i++){
yh[i]=new int[i+1];}
//②显式的为二维数组的每个元素赋值;
for(int i=0;i<yh.length;i++){
for(int j=0;j<yh[i].length;i++){
yh[i][0]=yh[i][i]=1;
if(i>1&&j>0&&j<i){
yh[i][j]=yh[i-1][j-1]+yh[i-1][j];
}}}
//③遍历打印二维数组
---4.12数组的常用算法:
①数组元素的最大值、最小值和平均值、总和等;
②数组的复制、反转
③数组元素的排序
Ctrl+Shift+f-->格式化文本格式
[int[] arr1,arr2;
arr1=new int[]{2,3,5,6,1,4,5};
arr2=arr1;//这样赋值arr2之后对arr2进行动态修改数组内值,其结果也会同样作用到arr1上;这涉及到值传递,此时System.out.println(arr1)的结果是“[I@64ea66”,是其在堆空间的地址,同样打印arr2也是同样结果,因为在赋值过程中把地址值传递过去了];
---4.13数组排序:
①插入排序:直接插入排序、折半插入排序、Shell排序;
②交换排序:冒泡排序、快速排序(或分区交换排序);
③选择排序:简单选择排序、堆排序
④归并排序
⑤基数排序
直接使用util包下的Arrays.sort(数组)方法;
相关文章推荐
- 黑马程序员——Java基本语法(二):程序流程控制、函数、数组
- java学习之路 之 基本语法-程序流程控制-循环结构-while循环练习题
- Java基本语法-----java数组(一维数组二维数组)
- java学习之路之基本语法-程序流程控制
- java学习之路 之 基本语法-程序流程控制-(if-else)语句练习题
- day 5:Java基本语法3(流程控制语句、方法、数组、内存分配)
- Java语言基础组成之:程序流程控制、函数、数组
- Java基本语法--程序流程控制
- java学习之路之基本语法-程序流程控制-switch语句练习题
- [java语法]基本语法(3) 程序控制流程
- 第二章 java语言基本语法————流程控制
- java学习之旅60--数组_多维数组_基本语法_内存分析
- Java基本语法--数据类型、运算符表达式、基本控制语句、数组使用以及练习
- java学习之路 之 基本语法-程序流程控制-循环结构-for 循环练习题
- 黑马程序员——Java语言基础:程序流程控制、函数、数组
- 第二章:Java_基本语法_4 程序流程控制
- java学习之路 之 基本语法-程序流程控制-switch语句练习题
- java学习之路之基本语法-程序流程控制
- Java基本语法-----java数组(一维数组二维数组)
- 黑马程序言——Java语言基础语法(二)数组