1 变量
Java 是一种强类型的语言,每一个变量都必须声明
Java 变量是程序中最基本的存储单元,其要素包括 变量名,变量类型,作用域
变量在使用前必须对其声明,只有在变量声明以后才可以为其分配相应的长度的存储单元,声明格式为“:
type varname [=value],[value1],[value2] ;
注意事项:
每一个变量都有类型,类型可以是基本类型。也可以是引用类型
变量名必须是合法的标识符
局部变量 : 方法体或者语句块内定义的变量(使用前必须先声明和初始化(即赋初值))
实例变量 (成员变量):方法体外部,类的内部定义的变量 。如果不自动进行初始化,会自动初始化成该类型的默认初始化值(数值变量初始化0或者0.0,字符型初始化为16位的0,布尔类型初始化为false)
常量(变量名经常大写): final 类型 加变量名 注意 只能初始化一次 之后尝试改变值会报错
所有命名规范 : 首字母小写和驼峰原则 runRum() ageNew
常量 大写字母和下划线 MAX-VALUE
类名 首字母大写和驼峰原则 : Man GoodMan
2 运算符
算术运算符 常见的 加减乘除等,%,++,--
复制运算符 =
关系运算符:>,<,>=,==,!= instanceof
逻辑运算符&& ,|| !
位运算符 & ,|,^,>>,<<
条件运算符 ?:、
扩展复制运算符:+=,-=,*=,/=
二元运算符类型提升
整数运算 :如果两个操作数有一个 为Long 则结果为Long
没有Long 时结果为 int 即使操作数全为shot,byte,结果也是int
浮点运算:如果两个数有一个为double,则结果为double
只有两个操作数都是float则结果是float
一元元算符(++,--)
int a = 3;
int b = a++ //执行完b = 3 之后才进行自增 及 a = 3+1
int c = ++a //执行完后 , c = 5 . 先自增再给b赋值
布尔逻辑表达符
逻辑与&& 逻辑或 || 逻辑非 !
&& 和 || 采用短路方式 ,从左到右计算,如果确认值则不会再计算下去
Boolean c=1>2&&2>(3/0) ;&& 不会抛出异常;说明没有执行3/0 及短路运算
&& 左边的值如果为flase 则右边不会再参与运算结果为false 。 || 左边为true 右边不会再参与运算结果为true
位运算符 : ~--取反 & --按位与
| -- 按位或 ^ --按位异或
>>: 右移运算符 (左移动一位相当于除以2取商 < <:左移动一位相当于乘以2)元算符
扩展运算符:+= -= i+=5 即 i = i+5
字符串连接符 :+ str = "5" int s = 4 print(str+4) 结果为54 也不是 9 如果加号两边有一个为字符串则整个结果都为字符串
三目运算符 : ?: str = (a<b)? "a<b":"a>=b" 如果a<b则吧a<b复制给str 否则 将a>=b复制给str
示例求出2个数字中的最大值
public static void main(String[] args) {
//定义变量来保存最大值
int max=0;
//定义2个变量
int x=3;
int y=10;
//使用3目运算判断如果x>y则,max=x,否则max=y;
max=x>y?x:y;
System.out.println("max为: "+max);
}
3 选择结构
选择结构是根据条件的成立与否,再决定要执行哪些语句的一种结构
IF语句--单分支结构
if (判断条件){
语句1 ;
…
语句2 ;
}
示例一、 比较2个整型变量的大小
public class test4 {
public static void main(String[] args) {
int x = 3;
int y = 10; //定义2个整型变量,x,y
System.out.println("=======开始比较=======");
if(x>y){
System.out.println("x比y大!");
}
if(x<y){
System.out.println("x小于y!");
}
if(x==y){
System.out.println("x等于y!");
}
System.out.println("=======比较完成=======");
}
}
if...else语句--双分支结构
示例二、判断一个数字是奇数还是偶数
public class test5 {
public static void main(String[] args) {
int x=3; //定义大中型变量x
if(x%2==0){ //如果余数为0则是偶数
System.out.println("x是偶数");
}else{ //如果余数不为0则是奇数
System.out.println("x是奇数");
}
}
}
if…else if…else语句 --多分支结构
如果需要在if..else里判断多个条件时,就需要if..else if … else语句了,其格式如下:
if (条件判断1){
语句主体1 ;
}else if (条件判断2){
语句主体 2 ;
}
… // 多个else if()语句
else{
语句主体3 ;
}
public class test6 {
public static void main(String[] args) {
int x=3;
if(x==1){
System.out.println("x的值是1!");
}else if(x==2){
System.out.println("x的值是2!");
}else if(x==3){
System.out.println("x的值是3!");
}else{
System.out.println("x的值不是1,2,3 中的一个!");
}
}
}
Switch结构
要在许多的选择条件中找到并执行其中一个符合判断条件的语句时,除了可以使用if..else不断地判断之外,也可以使用另一种更方便的方式即多重选择——switch语句,语法格式:(当 语句内没有break会一直往下执行 直到碰到break语句 或者defaultc才结束)
switch (表达式){
case 选择值1 : 语句主体 1 ; break ;
case 选择值2 : 语句主体 2 ; break ;
…….
case 选择值n : 语句主体 n ; break ; default: 语句主体 ;
}
示例五、判断学生成绩,并给于评分,90~100分,A级大于80分,B级,大于70分,输出C级,大于60分,D级,低于60分输出E级
public class test7 {
public static void main(String[] args) {
int score = 75; //声明学生分数
switch (score/10){
case 10:
case 9:
System.out.println("A级");
break;
case 8:
System.out.println("B级");
break;
case 7:
System.out.println("C级");
break;
case 6:
System.out.println("D级");
break;
default:
System.out.println("E级");
break;
}
}
}
结果:C级
还是 上面的如果不加break;
public class test7 {
public static void main(String[] args) {
int score = 75; //声明学生分数
switch (score/10){
case 10:
case 9:
System.out.println("A级");
case 8:
System.out.println("B级");
case 7:
System.out.println("C级");
case 6:
System.out.println("D级");
default:
System.out.println("E级");
}
}
}
结果:C级,D级,E级
4 循环结构和用到的break 和continue 关键字
可能存在一种情况,当我们需要执行的代码块数次,并且通常被称为一个循环。
Java有非常灵活的三循环机制。可以使用以下三种循环之一:
-
while 循环
-
do...while 循环
-
for 循环
从Java5,增强的for循环中进行了介绍。这主要是用于数组。
while 循环:
while循环是一个控制结构,可以重复的特定任务次数。
语法:
while循环的语法是:
while(Boolean_expression)
{
//Statements
}
在执行时,如果布尔表达式的结果为真,则循环中的动作将被执行。这将继续下去,只要该表达式的结果为真。
在这里,while循环的关键点是循环可能不会永远运行。当表达式进行测试,结果为 false,循环体将被跳过,在while循环之后的第一个语句将被执行。
例子:
public class Test {
public static void main(String args[]) {
int x = 10;
while( x < 20 ) {
System.out.print("value of x : " + x );
x++;
System.out.print("
");
}
}
}
这将产生以下结果:
value of x : 10
value of x : 11
value of x : 12
value of x : 13
value of x : 14
value of x : 15
value of x : 16
value of x : 17
value of x : 18
value of x : 19
do...while 循环:
do ... while循环类似于while循环,不同的是一个do ... while循环是保证至少执行一次。
语法
do...while循环的语法是:
do
{
//Statements
}while(Boolean_expression);
请注意,布尔表达式出现在循环的结尾,所以在循环中的语句执行前一次布尔测试。
如果布尔表达式为true,控制流跳回起来,并且在循环中的语句再次执行。这个过程反复进行,直到布尔表达式为 false。
例子:
public class Test {
public static void main(String args[]){
int x = 10;
do{
System.out.print("value of x : " + x );
x++;
System.out.print("
");
}while( x < 20 );
}
}
这将产生以下结果:
value of x : 10
value of x : 11
value of x : 12
value of x : 13
value of x : 14
value of x : 15
value of x : 16
value of x : 17
value of x : 18
value of x : 19
for 循环:
for循环是一个循环控制结构,可以有效地编写需要执行的特定次数的循环。
知道多少次的任务是要重复一个for循环是有好处的。
语法
for循环的语法是:
for(initialization; Boolean_expression; update)
{
//Statements
}
下面是控制在一个流程的循环:
-
初始化步骤首先被执行,并且仅一次。这个步骤可声明和初始化任何循环控制变量。不需要把一个声明在这里,只要一个分号出现。
-
接下来,布尔表达式求值。如果是 true,则执行循环体。如果是 false,则循环体不执行和流程控制的跳转到下一个语句过去的for循环。
-
之后循环体在for循环执行时,控制流程跳转备份到更新语句。该语句允许更新任何循环控制变量。这个语句可以留空,只要一个分号出现的布尔表达式之后。
-
布尔表达式现在再次评估计算。如果是 true,循环执行,并重复这个过程(循环体,然后更新的步骤,然后布尔表达式)。之后,布尔表达式为 false,则循环终止。
例子:
public class Test {
public static void main(String args[]) {
for(int x = 10; x < 20; x = x+1) {
System.out.print("value of x : " + x );
System.out.print("
");
}
}
}
这将产生以下结果:
value of x : 10
value of x : 11
value of x : 12
value of x : 13
value of x : 14
value of x : 15
value of x : 16
value of x : 17
value of x : 18
value of x : 19
for循环在Java中增强版:
从Java5,增强的for循环中进行了介绍。这主要是用于数组。
语法
增强的for循环的语法是:
for(declaration : expression)
{
//Statements
}
-
声明: 新声明块变量,这是一种与正在访问数组中的元素兼容的。变量将是可利用的块内并且它的值将是相同的作为当前的数组元素。
-
表达: 这个计算结果完成需要循环数组。表达式可以是一个数组变量或方法调用返回一个数组。
例子:
public class Test {
public static void main(String args[]){
int [] numbers = {10, 20, 30, 40, 50};
for(int x : numbers ){
System.out.print( x );
System.out.print(",");
}
System.out.print("
");
String [] names ={"James", "Larry", "Tom", "Lacy"};
for( String name : names ) {
System.out.print( name );
System.out.print(",");
}
}
}
这将产生以下结果:
10,20,30,40,50,
James,Larry,Tom,Lacy,
break关键字:
关键字break是用来停止整个循环。 break关键字必须使用任何循环或switch语句中。
关键字break将停止最内层循环的执行,并开始执行的下一行代码的程序段后。
语法
break语法是任何循环中一个单独的语句:
break;
例子:
public class Test {
public static void main(String args[]) {
int [] numbers = {10, 20, 30, 40, 50};
for(int x : numbers ) {
if( x == 30 ) {
break;
}
System.out.print( x );
System.out.print("
");
}
}
}
这将产生以下结果:
10
20
continue 关键字:
continue关键字可以在任一环的控制结构可以使用。它使循环立即跳转到循环的下一次迭代.(continue后的所有语句将不在执行,重新开始回到循环的开始)
-
在for循环中,continue关键字会导致流程控制的立即跳转到更新语句。
-
在一个while循环或do/while循环,流控制的立即跳转到布尔表达式。
语法
continue 语法是任何循环中一个单独的语句:
continue;
例子:
public class Test {
public static void main(String args[]) {
int [] numbers = {10, 20, 30, 40, 50};
for(int x : numbers ) {
if( x == 30 ) {
continue;
}
System.out.print( x );
System.out.print("
");
}
}
}
这将产生以下结果:
10
20
40
50