首语:我们从基本的语法,数据类型,控制流程,结构化编程初识 Java...
Markdown语法说明
一.基本语法:
javadoc:它从程序源代码中抽取类、方法、成员等注释形成一个和源代码配套的API帮助文档。
打开Eclipse,点击标题栏project->Generation.
二.数据类型:
1.8种基本类型
一、4种整型
byte 1字节 -128——127
short 2 字节 -32,768 —— 32,767
int 4 字节 -2,147,483,648 ——2,147,483,647(超过20亿)
long 8 字节 -9,223,372,036,854,775,808——9,223,372,036854,775,807
注释:java中所有的数据类所占据的字节数量与平台无关,java也没有任何无符号类型
二、 2种浮点类型
float 4 字节 32位IEEE 754单精度(有效位数 6 – 7位)
double 8 字节 64位IEEE 754双精度(有效位数15位)
三、1种Unicode编码的字符单元
char 2 字节 整个Unicode字符集
四、1种真值类型
boolean 1 位 True或者false
2.数据类型的转换
分为以下几种情况:
1)低级到高级的自动类型转换;
2)高级到低级的强制类型转换(会导致溢出或丢失精度);
3)基本数据类型的算法;
4)基本类型向类类型转换;
5)基本类型向字符串的转换;
6)类类型向字符串转换;
1.自动转换规则:
boolean类型与所有其他7种类型都不能进行转换。其他7种都可自行转化,但是会出现精度损失。
byte <(short=char)< int < long < float < double
1.在一个双操作数以及位运算等算术运算式中,会根据操作数的类型将低级的数据类型自动转换为高级的数据类型,分为以下几种情况:
1)只要两个操作数中有一个是double.float类型的,另一个将会被转换成double.float类型,并且结果也是double类型;---->int a = 1;double b = 5;b = a; //b = 1.0
2)只要两个操作数中有一个是long类型的,另一个将会被转换成long类型,并且结果也是long类型;
---->int a = 1;long b = 5;b = a; // b = 1
3)两个操作数(包括byte、short、int、char)都将会被s转换成int类型,并且结果也是int类型。
2.强制类型转换规则:
需要在来在低级前说明,要转化的类型。强值类型转换会出现数据溢出。
----->float a = 1;int b = 5;b = (int) a; //a=1
3.基本数据类型的算法:
long sum = longnum + bytnum;(加减乘除 他们的和是长的数据类型);
包装数据类型与基本数据类型之间的转换
简单类型的变量转换为相应的包装类,可以利用包装类的构造函数。即:Boolean(boolean value)、Character(char value)、Integer(int value)、Long(long value)、Float(float value)、Double(double value)。
4.基本类型向类类型转换:
正向转换:通过类包装器来new出一个新的类类型的变量
Integer a= new Integer(2);
反向转换:通过类包装器来转换
int b=a.intValue();
通过类包装器——>基本数据类型
eg1:int i=Integer.parseInt(“123”)
说明:此方法只能适用于字符串转化成整型变量
eg2: float f=Float.valueOf(“123”).floatValue()
说明:上例是将一个字符串转化成一个Float对象,然后再调用这个对象的floatValue()方法返回其对应的float数值。
eg3: boolean b=Boolean.valueOf(“123”).booleanValue()
说明:上例是将一个字符串转化成一个Boolean对象,然后再调用这个对象的booleanValue()方法返回其对应的boolean数值。
eg4:double d=Double.valueOf(“123”).doubleValue()
说明:上例是将一个字符串转化成一个Double对象,然后再调用这个对象的doubleValue()方法返回其对应的double数值。
eg5: long l=Long.valueOf(“123”).longValue()
说明:上例是将一个字符串转化成一个Long对象,然后再调用这个对象的longValue()方法返回其对应的long数值。
eg6: char=Character.valueOf(“123”).charValue()
说明:上例是将一个字符串转化成一个Character对象,然后再调用这个对象的charValue()方法返回其对应的char数值。
5.基本类型向字符串的转换:(生成对应的数据类类型,调用包装类)
基本类型向字符串转;
int i1 = 10; double d1 = 3.1415926;
Integer I1 = new Integer(i1);// 生成Integer类
String si1 = I1.toString();// 分别调用包装类的toString() 方法转换为字符串
System.out.println("si1" +si1);//si110
int a = 1234;
String String = "" + a;
System.out.println(""+2+3);// “""”把2转成字符串操作;
System.out.println(2+3);//不存在转换。
System.out.println(2+3+"");//前两个数值相加后,被“""”转成字符串。
System.out.println(2+""+3);//同第一个。
输出显示为:23,5,5,23
字符串转基本数据类型;
String MyNumber ="1234";
int MyInt = Integer.parseInt(MyNumber);
int sum = MyInt*3;
System.out.println(sum);//3702
6.类类型向字符串转换:
正向转换:因为每个类都是object类的子类,而所有的object类都有一个toString()函数,所以通过toString()函数来转换即可
反向转换:通过类包装器new出一个新的类类型的变量
eg1: int i=Integer.valueOf(“123”).intValue();
三.控制流程:
1.循环语句(whlie):累加的作用。
while(循环条件){
循环体;}
语法说明:和if 语句类似,如果不是用代码块的结构,则只有while后面的第一个语句是循环体语句。在该语法中,要求循环条件的类型为boolean类型,指循环成立的条件,循环体部分则是需要重复执行的代码。
int i = 0;
while(i < 10){
System.out.println(i); //输出变量的值
i++; //变量的值增加1
}// 变量条件不增循环往复。在控制台下执行死循环的程序,可以按Ctrl+C 结束循环,在Eclipse 中运行死循环的程序,可以选择执行窗口中的红色按钮“Terminate”结束程序。
int i = 1; //循环变量
int sum = 0; //数字和
while(i <= 10){
sum += i; //和当前的i 值相加
i++; //变量i 增加1
}//第一次循环是把和1 相加的结果赋值给sum,然后再使用sum 的值和2 相加再赋值给sum,依次类推,则得到1-10 之间所有变量的和。
int i = 0;
while(i < 10){
i++; //变量的值增加1
System.out.println(i); //输出变量的值
}
1.循环(do-while):
do-while是典型的 "先循环再判断" 的流程控制结构
do{
循环体;
}while(循环条件);
语法说明:在do-while 语句中,循环体部分是重复执行的代码部分,循环条件指循环成立的条件,要求循环条件是boolean 类型,值为true 时循环执行,否则循环结束,最后整个语句以分号结束。
int i = 0;
do{
System.out.println(i); //输出变量的值
i++; //变量增加1
}while(i < 10);
1.循环(for):
for(初始化语句;循环条件;迭代语句){
循环体;
}
1、和其它流程控制语句一样,语句中的大括号不是语法必须的,但是为了结构清楚以及在循环体部分可以书写多行代码,一般使用大括号。
2、初始化语句作用是在循环开始以前执行,一般书写变量初始化的代码,例如循环变量的声明、赋值等。该语句可以为空。
3、循环条件是循环成立的条件,要求必须为boolean 类型,如果该条件为空,则默认为true,即条件成立。循环条件为空时,默认为true,但是会死循环;
4、迭代语句是指循环变量变化的语句,一般书写i++、i—这样的结构,当然,该语句也可以为空
5、循环体指循环重复执行的功能代码。
2.分支/条件(if):
int a = 10;
if(a >= 0)
System.out.println(“a 是正数”);
if( a % 2 == 0)
System.out. println(“a 是偶数”);
2.条件分支语句(if-else):
if(判断语句){
true, 执行语句1;
}else {
false,执行语句2;
}
语法说明:其中前面的部分和if 语句一样,else 部分后面是功能的代码,按照该语法格式,功能代码只能有一句。
执行顺序:如果条件成立,则执行if 语句中的执行语句1,否则执行else 中的执行语句2。
int n = 12;
if(n % 2 != 0)
System.out.println(“n 是奇数”);
else
System.out.println(“n 不是奇数”);
2.条件分支语句(if-else else-if):
if (判1){
true, 执行语句1;
}else if (判2) {
false,执行语句2;
}else{
false 执行语句3;
} ///在执行时注意,可以统计你需要记录的false和true的数量,倘若除了某总情况其他都是true可以不需要用这种方法。
2.条件分支语句(switch):
switch 语句在条件语句中特别适合做一组变量相等的判断,在结构上比if 语句要清晰很多。