基本数据类型:
Java编程语言定义了4类8种基本数据类型
逻辑——boolean字符——char
整数——byte、short、int和long
浮点——double和float
逻辑型 — boolean
boolean类型适用于逻辑运算,一般用于程序的流程控制。
boolean数据类型有两个值:true和false
不可使用0或非0的值替代true和false,这点与C语言不同。
字符型 — char
char,即字符用单引号括起来,e.g: char c1 = ‘a’; char c2 = ‘中’;
也可以用ascii码表
char c3 = 65 (A);
还可以用Unicode字符表示
例如:语句:
char c2 = ‘\u4e2d’(中);
整数类型、浮点类型
整型包括:byte short int long(广义的整型包括char型)有固定的范围和长度,不受操作系统影响,以保证Java的可移植性
整数常量有三种表示方式
十进制整数,如:123,3.14,0.12
二进制(以0B开始---JDK1.7)
八进制(以0开始)
十六进制(以0X开始)
java 语言中,,运算过程中整型类型默认为 int 类型,声明long类型时,要加上”L”或”l”
数字默认是:int类型
浮点类型->默认类型是:double
浮点型 包括 : float 和 double 型 两种。他们分别占有4个字节和8个字节,但他们远远比int 和 long 4 和 8 个字节大的多
Java 语言的浮点数有两种表示方式
十进制数形式,浮点数必须包含小数,否则系统将认为是一个int 型 如: 8.0 不能省略为: 8
科学计数法形式,只有浮点数才有科学计数法,如:3.14e8, 2.1E4, 5.2E-3,
Java 语言的浮点数默认是double 型,如果要表示float 型 必须在数字后面加 f(如:1.3f),
Java 的三个特殊的浮点数值:正无穷大,负无穷大和非数
所有的正无穷大都是相等,负无穷大都是相等,,而非数不与任何数值相等,与自己也不相等,只有浮点数除0 才可以得到这三个数,整数除0将报错;
Java 7引入了一个新功能:程序员可以在数值中使用下画线,不管是整型数值,还是浮点型数值,都可以自由地使用下画线。
通过使用下画线分隔,可以更直观地分辨数值中到底包含多少位
例如:int i = 123_456_789;
运行结果:123456789 必须在jre7.0中运行
String
不是基本数据类型,而是一个类,是引用类型
字符在双引号" "内
使用如下:String str;
String greeting=“Good Morning!”;
String errorMessage=“Record Not Found!”;
字符串拼接:
public static void main(String[] args) {
String firstName = "James";
System.out.println(firstName);
String lastName = new String("Gosling");
System.out.println(lastName);
String fullName = firstName + " " + lastName;
System.out.println(fullName);
}
各种数据类型作为成员变量的默认值:
运算符
算术运算符:+、-、*、/、%、++、--
关系运算符:>、<、>=、<=、==、!=
逻辑运算符:!、&、|、^、&&、||
位运算符 : &、 |、 ~ 、^、 << 、>>、 >>>
赋值运算符: =、+=、*=、/=、%=
字符串连接运算符:+
public static void main(String[] args) {
int x = 3;
int y = 20;
System.out.println(x+y);//23
System.out.println(x-y);//-17
System.out.println(x*y);//60
System.out.println(x/y);//0
System.out.println(x%y);//3—求余数
}
public static void main(String[] args) {
int i1 = 10;
int i2 = 20;
int i3 = i1++;//先取值再运算
System.out.println(i3);
System.out.println(i1);
int i4 = --i2;//先运算再取值
System.out.println(i4);
System.out.println(i2);
}
!—逻辑非、&--逻辑与、|--逻辑或、^--异或、&&--短路与、||--短路或
public static void main(String[] args) {
System.out.println(3>2);
System.out.println(2<3);
System.out.println(3>=3);
System.out.println(1<=3);
System.out.println(2==3);//false
System.out.println(2!=3);
}
字符串连接符
“+”还可以对字符串进行连接操作
“+”中只要有一个字符串,结果都是字符串.
比如:
int age = 25;
String str = “你的年龄是”+age;
基本数据类型的转换
boolean 类型不能转换为其他数据类型
其他数据类型也不能转换为boolean类型
整型,字符型,浮点型转换原则:
容量小的类型自动转换为容量大的数据类型.
byte,short,char => int => long => float => double
byte,short,char 之间不会互相转换,三者在计算时先转换为int.
三目条件运算符,语法格式:
x ? y : z
其中 x 为 boolean 类型表达式,先计算 x 的值,若为true,则整个三目运算的结果为表达式 y 的值,否则整个运算结果为表达式 z 的值。
举例:
int score = 80; int x = -100;
String type = score < 60 ? "不及格" : "及格";
int flag = x > 0 ? 1 : (x == 0 ? 0 : -1);
System.out.println("type= " + type);
System.out.println("flag= "+ flag);
顺序结构:
是最简单的,只要按照解决问题的顺序写出相应的语句就行,它的执行顺序是自上而下,依次执行
如果main方法多行代码之间没有任何流程控制,则程序总是从上向下依次执行,排在前面的代码先执行,排在后面的代码后执行
分支结构:
Java提供了两种常见的分支控制结构:
if语句:使用布尔表达式或布尔值作为分支条件来进行分支控制。
switch语句:用于对多个整型值进行匹配,从而实现分支控制。
分之结构_用法-if
if(表达式){
语句
}
分之结构_用法二 else
一个if语句末尾可以跟一个else语句,用来指定if语句条件不成立时执行的代码。
分之结构_用法三else if
一个if语句后面可以跟一个或多个else if语句,用来指定if语句条件不成立时需要再判断的其它条件。
分之结构_if的嵌套
在实际编程过程中,往往会有这种情况发生:当条件a满足时,再判断条件b1,而当条件a不满足时,再判断条件b2。
遇到这样的情况就需要在条件语句if的分支中再嵌入if语句,那么就构成了条件语句if的嵌套。条件语句if嵌套的格式如下:
IF语句常见的错误
如果if、else、else if后的执行体只有一行语句时,则可以省略花括号,但我们最好不要省略花括号,因为保留花括号会有更好的可读性,且还可以减少发生错误的可能。
对于if 语句,还有一个很容易出现的逻辑错误,这个逻辑错误并不属于语法问题,但引起错误的可能性更大。
对于任何的if else 语句,表面上看起来else后没有任何条件,或者else if后只有一个条件,但这不是真相:因为else的含义是“否则”,else本身就是一个条件!else 的隐含条件就是对前面条件取反。
switch分支结构
可以省略case后代码块的花括号1、使用break语句,防止case穿透2、 default可以省略,但不推荐省略3、 switch语句中控制表达式的类型只能是byte、short、char、int、String(JDK7新增)和枚举
方法:为了完成特定功能的某些代码的组合
语法:修饰符1,修饰符2… 返回值 methodName(参数列表。。。){ code….. }
Void :定义此方法没有返回值
methodName:原则上可以任意起名,一般遵循编程规范,见名知意
参数:形参、实参
类包含用于执行基本数学运算的方法:
Static 返回值 abs (参数) 返回绝对值
public static double floor(double a) 向下取整
public static double ceil(double a) 向上取整
public static long round(double a)四舍五入
public static double random()取随机数 [0,1)public static float max(float a, float b)
public static int min(int a, int b)
Java支持的3种基本的循环语句:
for循环语句
while循环语句
do while 循环语句
for循环语句通常用来执行确定次数的迭代语句。
while循环语句通常用来执行未确定循环次数的迭代语句。
do while 循环的语法格式如下:
[init_statements]
do{
statements;
[iteration_statements]
}while (test_expression);
使用循环时,一定要保证循环条件有变成false的时候,如果循环条件永远为true,那就是死循环。使用while循环时还有一个陷阱,while循环条件后紧跟一个分号
do while 循环语句里,即使test_expression循环条件的值开始是假,do while循环也会执行循环体。因此,do while循环的循环体至少执行一次。
注意:有时灵活使用死循环,会起到意想不到的结果
各种基本类型的循环都可以作为外层循环,各种基本类型的循环也可以作为内层循环
假设外层循环的循环次数为n次,内层循环的循环次数为m次,那么内层循环的循环体实际上需要执行n*m次
实际上,嵌套循环不仅可以是两层嵌套,还可以是三层嵌套,四层嵌套……
java.util.Scanner是Java5的新特征,主要功能是简化文本扫描。这个类最实用的地方表现在获取控制台输入
ps:
public class TestScanner {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.println("请输入字符串:");
while (true) {
String line = s.nextLine();
if (line.equals("exit")) break;
System.out.println(">>>" + line);
}
}
}