Java----Day 2
2. Java基础(数据运算、数组等)
2.1 数据类型
int、double、float等,与其他编程语言相似,不在赘述。
布尔:true,false
2.2 编码习惯
- 类名首字母大写(Main);
- 变量方法名首字母小写;
- 定义标识符的时候字母紧贴一起,中间单词首字母大写,如:myNameIsYs等;
- 常数初始化字符,大写所有字符。
2.3 字符常量
常用:
’ ---- 单引号
‘’ ---- 双引号
\ ---- 反斜杠
\n ---- 换行
\r ---- 回车
\t ---- 横向跳格
\f ---- 走纸换页
\b ---- 退格
2.4 程序注释
- // 单行注释
- /* …*/ 多行注释
- /** …*/ 文档注释 (不常用)
2.5 运算符
- 一元运算符(+,-,++,–等)(+和-为正负)对应一个操作数,采用前缀形式(++i);二元运算符(关系运算符)对应两个操作数,采用中间形式(1+1);三元运算符(如?:)对应三个操作数;
- ?: 为条件运算符;
- 算术运算符(+, - , * , / , % , ++, --);
- 关系运算符( > , < , >= , <= , == , !=);
- 布尔逻辑运算符(!, && , || , & , | );
- 位运算符(>> , << , >>> , & , | , ^ , ~);
- 赋值运算符(=, 及其扩展赋值运算符如+=);
- 条件运算符(?:);
- 其他(包括分量运算符 . ,下标运算符 [ ] ,实例运算符 instannceof ,内存分配运算符 new,强制类型转换运算符(类型),方法调用运算符()等 );
- ++i 与 i++ 之间的区别,执行 i++ 后 ,整个表达式的值为i,i 的值为i+1;执行++i后,表达式和 i 的值都是i+1;
- 条件运算符:a?b:c 意思是 若a为真值结果是b;若 a 为假,为c的值。
- 优先级自行查表。
2.6 程序流程
- 顺序结构
- 分支结构
- 循环结构
- switch 用法如下:
class LIUCHENG{
public static void main(String[] args){
switch (5%3){
case 1:System.out.println(1);break;
case 2:System.out.println(2);break;
case 3:System.out.println(3);break;
default:System.out.println('x');
}
}
}
// 结果:2
- do … while:
do
// 循环体
while(条件表达式)
// 先无条件执行循环体的内容
- for 循环也可以遍历
int[] a = new int[10];
for(int num:a){
System.out.print(num+" ");
}// 将数组中的遍历出来
2.7 角谷猜想
若一个数为偶数,则除以2;若为奇数,则乘3加1;按照以上规律最后结果都是1。
import java.util.Scanner;
public class Jiaogu {
public static void main(String[] args){
System.out.print("Please input a number: ");
Scanner in = new Scanner(System.in);
int y = in.nextInt();
int s = 0;
while (y != 1){
System.out.print(" "+y);
s ++;
if(y % 2 == 1){
y = y * 3 + 1;
}
else y = y / 2;
}
System.out.println(" "+y+",运算次数"+s);
in.close();
}
}
2.8 跳转语句
- java的跳转语句一共有三个:return、break、continue;
- continue 不带标号的是终止当前这一轮的循环,本轮剩余的指令不再执行;带标号的continue,转到标号表明的循环体;
- break与continue拥有的形式相同;
2.9 一维数组
- 一维数组的表示:type arrayName[ ] or type [ ] arrayName;其中arrayName 是数组名字;例如:char [ ] name;
- java在为数组定义的时候并不会给数组分配内存;
- 如果需要给数组分配内存格式为:aN = new type[size];aN为数组名,size为数组大小,例如:int [ ] score = new int [3];
- 给数组分配空间后,数组默认值为0或者0.0或者’\0’,取决于数组的类型;
- 数组引用方法:数组名[index];下标从0开始;
- 一维数组初始化如下:
int a[] = {1,2,3,4,5};
// or
int a[]= new int[] {1,2,3,4,5};
// space is allocated automatically
- Fibonacci数列
–>定义:F_1 = F_2 = 1 , F_n = F_n-1 + F_n-2 ( n >= 3 );
class Fb{
public static void main(String[] args){
int[] f = new int[10];
f[0] = f[1] = 1;
for (int i = 2; i < 10;i++)
f[i] = f[i-1]+f[i-2];
for (int i = 1;i <= 10;i++)
System.out.println("F["+i+"]="+f[i-1]);
}
}
- 创建容量为20的数组,让数组中的整数都不相同;
class Suishu{
public static void main(String[] args){
int[] a = new int[20];
for (int i = 0;i<a.length;i++){
x:while (true){
a[i] = (int) (Math.random()*36)+1;
for (int j = 0;j<i;j++){
if(a[i]==a[j])
continue x;
}
System.out.print(a[i]+" ");
break ;
}
}
}
}
// 结果为:11 36 8 4 22 3 35 12 16 31 10 30 25 20 23 5 24 17 21 13
2.10 二维数组
- 引用方式:
aN[index][index]
- 初始化
int a[][] = {[2,3],[9,8],[4,5]} // 定义了3*2的数组,并对每个元素赋值;