您的位置:首页 > 移动开发 > Android开发

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

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]+" ");
}
}
}

}



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息