Java攻略–基础语法
基本数据类型转换
Java中可以从任意基本类型转型为另外的基本类型
例外 -> Boolean类型不可以转换为其他类型
默认转换
整型 字符型 浮点型的数据在混合运算中相互转换,转换时遵循以下原则:
容量小的默认转换为容量大的数据类型 数据类型按容量大小排序为
byte,short,char->int->long->float->double
byte,short,char之间不会互相转换,他们三者在计算时首先会转换为int类型
强制转换
容量大的数据类型转换为容量小的数据类型时,要加上强制转换符,但可能造成精度降低或溢出;使用时要格外注意。
有多种类型的数据混合运算时,系统首先自动的将所有数据转换成容量最大的那一种数据类型,然后再进行计算。
//强制类型转换
int b = 10;
double c=10.25;
float f;
//不可转换 b=c;
//可以转换 可以容量小的转化为容量大的 c=b;
//不可转换 f=c;
int m= b+ (int)c; //强制类型转换
运算符
•Java 语言支持如下运算符:
算术运算符: +,-,*,/,%,++,–
字符串连接运算符:+
关系(比较)运算符: >,<,>=,<=,==,!=
逻辑运算符: !,& , | , &&,||
赋值运算符: = ,+ =,- =,* =,/ =
条件运算符
位运算符
Notes: 逻辑运算符
& 逻辑与 | 逻辑或 !逻辑非
&& 短路与 || 短路或 ^ 逻辑异或
逻辑与 和 短路与的区别
单&时,左边无论真假,右边都进行运算;
双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。
逻辑或 和 短路或的区别
“|”和“||”的区别同理,||表示:当左边为真,右边不参与运算。
赋值运算
当 “ = ” 两侧数据类型不一致时,可以使用自动类型转换或使用强制类型转换原则进行处理。支持连续赋值。
条件运算符
语法 : (条件表达式)?表达式1:表达式2;
为true 运算后的结果为表达式1;
为false 运算后的结果为表达式2;
表达式1和表达式2是同种类型
表达式的运算顺序
控制台输入
使用标准输入串System.in
/*输入台输入
* 需在头文件中声明 import java.util.Scanner;
* int n = x.nextInt(); --整型变量 程序运行到此行等待控制台输入信息,回车输入完毕
* n= next();
*/
控制语句
条件语句
/*if条件句
根据不同条件 执行不同语句
notes: 每一个if后要带{} 否则不利于程序阅读 只执行if后紧跟的第一条语句
容易误判
if()
if()
else() --就近执行
表达式必须是返回布尔类型结果的表达式
if-else
区别 可简化if-else语句
条件语句必须返回一个结果
if后的代码块可有多个语句
对区间判断,对结果为boolean类型判断,if的使用范围更广
*/
int a=5;
int b=6;
int c=7;
if(a<b){
System.out.println("1");
}
if(a>c){
System.out.println("2");
}
else {
System.out.println("3");
}
分支和循环结构
/*switch():
* case 1 : 后面的只能是常量表达式 只能是byte、 short 、int、 char 类型
* 后面的值不能重复
* 某个case分支如果没有提供break语句,则继续执行下一个case后的语句;
当表达式的值与任一case子句中的值都不匹配时,将执行default后面的语句;
* 如果没有default子句,则程序直接跳出switch语句。*/
int data =3;
switch(data){
case 0:
System.out.println("周天");
break;
case 1:
System.out.println("周一");
break;
case 2:
System.out.println("周二");
break;
default:
System.out.println("无效");
}
switch和if语句的对比
如果判断的具体数值不多,而且符合byte short int char 这四种类型 虽然可以使用 建议使用switch语句 效率高
其他情况 对区间的判断 对结果为boolean类型的判断 使用if if的使用范围更广
循环语句
循环语句的功能 在某些条件满足的情况下 反复执行特定的代码功能
循环语句的四个组成部分 循环变量的初始化 循环条件部分 循环体部分 循环变量的更新
循环语句的分类 while 循环 do/while 循环 for循环
while 和do/while语句
while 语句为如下形式:
while(逻辑表达式){ 语句; … ; }
while 语句为如下形式:
do { 语句; … ; } while(逻辑表达式);
/*
* while循环
* 先判断 后执行
* do while
* 先执行后判断
* */
int a=5;
int b=6;
int c=7;
int i=0;
while (a<b&&i<5){
i++;
System.out.println("我超厉害");
}
do {
System.out.println("hahha");
}while (b>i++);
for循环语句
for 语句为如下形式:
for(表达式1;表达式2; 表达式3){ 语句; … ; }
for (int x=0;x<5;x++){
System.out.println();
}
break和continue
break用于终止某个语句块的执行 用在循环体语句中可以强行退出循环
for (int j = 0; j < 6; j++) {
if (j==4){
break;
}
System.out.println("**"+j);
}
continue用于终止某次循环过程 跳过continue语句 后面的循环 开始下一次的循环
for (int j = 0; j < 5; j++) {
if (j==3){
continue;
}
System.out.println(j);
}
循环嵌套
将一个循环放在另一个循环体内 就形成了嵌套循环 for while do…while 均可作为外层循环 和 内层循环
实质上 嵌套循环 就是把内层循环 当成 外层循环 的循环体 . 只有当内层循环的循环条件为false 才会跳出内层循环 才可结束外层的当次循环 开始下一层循环
for (int x=0;x<5;x++){
for (int y = 0; y < 4; y++) {
System.out.print("*");
}
System.out.println();
}
结束外层循环
如果需要结束外层循环 需要使用标签 定义一个标签 如 label,然后在需要跳出的地方 用 break label