Android day6:JAVA运算符、流程(循环)、数组
2016-06-03 10:13
417 查看
已经到了这学期的期末了,这几周都会有考试,心思可能会更多的放在学校的学习复习和课程设计上,昨天考了这学期的第一科(项目管理),感觉还不错,希望成绩也不错
第六次的Android-java学习老师讲了比较多的内容,包括:运算符、流程、数组。
一、运算符
1、算术运算符(+ - / * ++ --)(++a:先把a自增,然后再进行下一步;a++:先把a加入运算或操作,事后再自增)
2、关系运算符(== != <= >= < > )
3、逻辑运算符(&& || !)
4、位运算符(二进制)
(1)按位与&:当两位同时为1时才返回1,否则返回0;
(2)按位或|:当两位只要有一位为1时就可以返回1;
(3)按位非~:翻转操作数的每一位,包括符号位;
(4)按位异或^:两个操作数的某一位不同时,该位结果就为1;
(5)按位左移运算符<<:左操作数按位左移右操作数指定的位数,右边空出来的位数以0补充;
(6)按位右移运算符>>:右操作数按位右移左操作数指定的位数,左边空出来的位数以符号位补充;
(7)无符号右移运算符>>>:左操作的值按右操作数指定的位数右移,移动得到的空位以0补充;
5、赋值运算符
= += -= *= /= %= &= |= ^= <<= >>=
6、条件运算符(三目运算符)
variable a=(expression)? value if true: value if false;
7、intanceOf运算符(用于操作对象实例,检查该对象是否是一个特定的类型)
eg:String name="Li";
boolean str=name intanceOf String;
二、流程
循环结构
1、while循环
2、do...while循环
3、for循环
foreach循环(for(声明语句:表达式))(用于遍历数组、集合方面)
eg:String name={"Li","Zhang"};
for(String n: name){
System.out.print(n+" ");
}
4、关键字
(1)break:跳出最里层的循环,并继续执行该循环下的语句
(2)continue:跳出当前循环,并继续执行下个循环
(3)return:跳出当前函数
三、数组
1、数组概述
属于引用数据类型,数组中所有元素的数据类型必须一致,可存放基础数据类型也可存放引用数据类型
2、数组的定义
type[] arrayName(推荐)
type arrayName[]
3、数组的初始化(数组初始化后才能使用,即为数组分配内存空间)
(1)静态初始化(显式指定数组的初始值,由系统决定数组的长度)
type[] arrayName=new type[]{e1,e2,e3};
type[] arrayName={e1,e2,e3};(推荐)
(2)动态初始化(只是指定数组长度,由系统为每个数组元素指定初始值)
type[]
arrayName=new type[length];
数组的长度的值的类型是int类型,若length超出int类型的数值范围,IDE会报错(The
literal 1000000000000000000000000000000(输入的length) of type int is out of range )
访问数组时指定的索引值小于0,或大于等于数组长度,编译程序时不会报错,可是运行结果会出现( java.lang.ArrayIndexOutOfBoundsException)
(3)数组的length属性(通过这个属性获得数组的长度)
(4)数组的遍历
for循环,利用length;
foreach
(5)引用类型的数组
引用类型的数组是引用,每个数组元素存储的还是引用,它指向另外一块内存
(6)增强类Arrays的常用方法
Arrays类在
java.utils 包下
(1)int binarySearch(type[]a, type key) 使用二分法查询key元素值在a数组中出现的索引
(2)type[] copyOf (type[] original, int length) 把original数组复制成一个新的数组,length是新数组的长度。length大于原数组的情况下,如果是int类型,则后面补0,布尔类型,则后面补false,对于引用类型,后面补null
(3)void fill (type[] a, type val) 把a数组的所有元素赋值成val
(4)void sort(type[] a) 对数组a进行排序(升序)
(5)String toString(type[] a) 将数组转成字符串,通过逗号(,)和空格分隔
作业:
1、使用循环语句输出九九乘法表
1x1=1
2x1=2,2x2=4
3x1=3,3x2=6,3x3=9
4x1=4,4x2=8,4x3=12,4x4=16
String [] str = {“Java”,
“C++”, “Php”, “C#”, “Python”,
“C++”, “Java”};
第六次的Android-java学习老师讲了比较多的内容,包括:运算符、流程、数组。
一、运算符
1、算术运算符(+ - / * ++ --)(++a:先把a自增,然后再进行下一步;a++:先把a加入运算或操作,事后再自增)
2、关系运算符(== != <= >= < > )
3、逻辑运算符(&& || !)
4、位运算符(二进制)
(1)按位与&:当两位同时为1时才返回1,否则返回0;
(2)按位或|:当两位只要有一位为1时就可以返回1;
(3)按位非~:翻转操作数的每一位,包括符号位;
(4)按位异或^:两个操作数的某一位不同时,该位结果就为1;
(5)按位左移运算符<<:左操作数按位左移右操作数指定的位数,右边空出来的位数以0补充;
(6)按位右移运算符>>:右操作数按位右移左操作数指定的位数,左边空出来的位数以符号位补充;
(7)无符号右移运算符>>>:左操作的值按右操作数指定的位数右移,移动得到的空位以0补充;
5、赋值运算符
= += -= *= /= %= &= |= ^= <<= >>=
6、条件运算符(三目运算符)
variable a=(expression)? value if true: value if false;
7、intanceOf运算符(用于操作对象实例,检查该对象是否是一个特定的类型)
eg:String name="Li";
boolean str=name intanceOf String;
二、流程
循环结构
1、while循环
2、do...while循环
3、for循环
foreach循环(for(声明语句:表达式))(用于遍历数组、集合方面)
eg:String name={"Li","Zhang"};
for(String n: name){
System.out.print(n+" ");
}
4、关键字
(1)break:跳出最里层的循环,并继续执行该循环下的语句
(2)continue:跳出当前循环,并继续执行下个循环
(3)return:跳出当前函数
三、数组
1、数组概述
属于引用数据类型,数组中所有元素的数据类型必须一致,可存放基础数据类型也可存放引用数据类型
2、数组的定义
type[] arrayName(推荐)
type arrayName[]
3、数组的初始化(数组初始化后才能使用,即为数组分配内存空间)
(1)静态初始化(显式指定数组的初始值,由系统决定数组的长度)
type[] arrayName=new type[]{e1,e2,e3};
type[] arrayName={e1,e2,e3};(推荐)
(2)动态初始化(只是指定数组长度,由系统为每个数组元素指定初始值)
type[]
arrayName=new type[length];
数组的长度的值的类型是int类型,若length超出int类型的数值范围,IDE会报错(The
literal 1000000000000000000000000000000(输入的length) of type int is out of range )
访问数组时指定的索引值小于0,或大于等于数组长度,编译程序时不会报错,可是运行结果会出现( java.lang.ArrayIndexOutOfBoundsException)
(3)数组的length属性(通过这个属性获得数组的长度)
(4)数组的遍历
for循环,利用length;
foreach
(5)引用类型的数组
引用类型的数组是引用,每个数组元素存储的还是引用,它指向另外一块内存
(6)增强类Arrays的常用方法
Arrays类在
java.utils 包下
(1)int binarySearch(type[]a, type key) 使用二分法查询key元素值在a数组中出现的索引
(2)type[] copyOf (type[] original, int length) 把original数组复制成一个新的数组,length是新数组的长度。length大于原数组的情况下,如果是int类型,则后面补0,布尔类型,则后面补false,对于引用类型,后面补null
(3)void fill (type[] a, type val) 把a数组的所有元素赋值成val
(4)void sort(type[] a) 对数组a进行排序(升序)
(5)String toString(type[] a) 将数组转成字符串,通过逗号(,)和空格分隔
作业:
1、使用循环语句输出九九乘法表
1x1=1
2x1=2,2x2=4
3x1=3,3x2=6,3x3=9
4x1=4,4x2=8,4x3=12,4x4=16
package lesson6; public class jiujiu { public static void main(String[] args) { // TODO Auto-generated method stub for(int qianYin=1; qianYin<=9; qianYin++){ for (int houYin = 1; houYin <= qianYin; houYin++) { System.out.print(qianYin+"*"+houYin+"="+qianYin*houYin); if(houYin<qianYin){ System.out.print(", "); } if(qianYin==houYin){ System.out.println("\n"); } } } } }2、使用循环输出等腰三角形,例如给定4,输出如下结果
package lesson6; import java.util.Scanner; public class dengyaoTriangle { public static void main(String[] args) { // TODO Auto-generated method stub Scanner input = new Scanner(System.in); System.out.println("请输入你想获得的等腰三角形的边长:"); int bianChang=input.nextInt(); for(int hang=1; hang<=(2*bianChang-1); hang++){ //偶数行全部输出空格 if(hang%2==0){ for(int i=1; i<=2*bianChang-1; i++){ System.out.print(" "); if(i==2*bianChang-1){ System.out.print("\n"); } } } int zhuang=(hang+1)/2; //把空格行忽略, //奇数行需要输出* if(hang%2!=0){ for(int fuHao=1; fuHao<=(2*bianChang-1); fuHao++){ if(fuHao>=bianChang-(zhuang-1) && fuHao<=bianChang+(zhuang-1)){ System.out.print("*"); } if(fuHao<bianChang-(zhuang-1) || fuHao>bianChang+(zhuang-1)){ System.out.print(" "); } if(fuHao==2*bianChang-1){ System.out.print("\n"); } } } } } }3、请将下面的数组去重,并输出最后结果,可能的话封装成一个通用的方法
String [] str = {“Java”,
“C++”, “Php”, “C#”, “Python”,
“C++”, “Java”};
package lesson6; public class quChong { public static void main(String[] args) { // TODO Auto-generated method stub String[] str = {"Java", "C++", "Php", "C#", "Python", "C++", "Java"}; quChongBehavior(str); } private static void quChongBehavior(String[] shuzu) { String[] newZu = new String[shuzu.length]; for(int i=0; i<shuzu.length; i++){ for(int chaChong=i+1; chaChong<shuzu.length; chaChong++){ if(shuzu[i]==shuzu[chaChong]){ shuzu[chaChong]=null; } } } for(int i=0; i<shuzu.length; i++){ if(shuzu[i]!=null){ newZu[i]=shuzu[i]; System.out.print(shuzu[i]+" "); } } } }
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树