java的基础语法知识
变量
数据类型 | 字节 |
---|---|
byte | 1 |
short | 2 |
float | 4 |
double | 8 |
int | 4 |
char | 2 |
boolean | 1 |
long | 8 |
注:对于布尔类型, boolean flag =true/false
随便写一个默认的int若超出则应加上L/l
eg long i=4564644L
默认 为double若用float则后面加上F/f
拓展一种引用数据类型
String 称为字符串类型,定义的变量可用于记住一个字符串数据"S"大写
类型转换
1)自动类型转换
范围小—>范围大(直接转化)
eg byte——int
byte a=12;
int b=a;
顺序
eg char ch=‘a’ a=97 int i=ch i=97
2)表达式的自动转换类型
表达式的最终结果由表达式的最高类型决定
表达式中byte ,short,char。是直接转化成int 参与运算。
int a=10;
long c=30;
double a+c+3.0;
byte i=10;
short j=80;
int i+j;
byte b1=10;
byte b2=32;
int c=b1+b2;
3 )
强制转换化类型
(大范围到小范围)不能直接转
格式 数据类型 变量2=(数据类型)变量1;
egint a=20;
byte b=(byte)a;
浮点型转化整形,直接丢掉小数部分,保留整数部分。
运算符
关于保留小数eg int i=5;j=2;
1.0*i/j=2.5
一定用1.0乘
1,关于+的使用
能算则算,不能算则加在一起
eg int a=5;
”abc“ +a————abc5
而a+5—10
++i为先加后用
i++为先用后 加
+= -----为a=a+b
a+=b
&与 | 或 | !取反 | 异或 |
---|---|---|---|
全真则真 | 一真则真 | !true==false | 前后相同为–false前后不同为–true |
三元运算符
*格式 条件表达式 ?值一:值二;
eg double i=98;
String rs =i >=60?" 及格":”不及格“;
rs最终为及格
先判断是否,若是则走值1,若不对走值2
//比较三个数大小
int i=30;
j=40;
k=60;
int temp=i>j ? i:j;//找出i与j中最大数
int x=temp>k ? temp:k;
注:&&高于||
eg 10>3||10>3&&10<3
分支
1)if
表达格式
if(条件表达式)
{
代码
}
2)
if(条件表达式)
{
代码1
}
{
代码2
}
3)
if(条件表达式)
{
代码1
}
{
代码2
}
{
代码3
}
else{
代码4}
2.switch
通过比较值来决定执行哪条分支
执行表达式的值时,再参与与case的值进行匹配。若都不匹配则执行default
switch(表达式)
{
case 值1:
执行代码;
break;
case 值2:
执行代码;
break;
case 值n-1:
执行代码;
break;
default:
执行代码n;
switch表达式只能为byte,short,char,String。
不能为double,float,long。注double运用值不准确(不保留小数)
2) case后的值不能重复,只能为字面量,不能为变量。
3)break与continue不能忘
1、break用于跳出一个循环体或者完全结束一个循环,不仅可以结束其所在的循环,还可结束其外层循环。
注意:
(1)只能在循环体内和switch语句体内使用break。
(2)不管是哪种循环,一旦在循环体中遇到break,系统将完全结束循环,开始执行循环之后的代码。
(3)当break出现在循环体中的switch语句体内时,起作用只是跳出该switch语句体,并不能终止循环体的执行。若想强行终止循环体的执行,可以在循环体中,但并不在switch语句中设置break语句,满足某种条件则跳出本层循环体。
2、continue语句可以理解为只是中止(跳过)本次循环,接着开始下一次循环。
注意:
(1)continue语句并没有使整个循环终止。
(2)continue 只能在循环语句中使用,即只能在 for、while 和 do…while 语句中使用。
循环
- for循环语句格式:
for(初始化语句;判断条件语句;控制条件语句) {
循环体语句;
}
执行流程:
A:执行初始化语句
B:执行判断条件语句,看其结果是true还是false:如果是false,循环结束;如果是true,继续执行。
C:执行循环体语句
D:执行控制条件语句
E:回到B继续
注意事项:
(1)判断条件语句的结果是一个boolean类型
(2)循环体语句如果是一条语句,大括号可以省略;如果是多条语句,大括号不能省略。建议永远不要省略。
(3)一般来说:有左大括号就没有分号,有分号就没有左大括号
三、循环结构(while循环语句)
- while循环语句格式:
while(判断条件语句) {
循环体语句;
}
//扩展格式
初始化语句;
while(判断条件语句) {
循环体语句;
控制条件语句;
}
3. 循环结构(do…while循环语句)
基本格式:
do {
循环体语句;
}while((判断条件语句);[/code]
扩展格式:
初始化语句;
do {
循环体语句;
控制条件语句;
} while((判断条件语句);
写程序优先考虑for循环,再考虑while循环,最后考虑do…while循环
for与while区别
知道循环次数用----for
不知道循环次数–while
for中控制变量i只能在循环中用
while中控制循环只能在外ke用
dowhile与for,while区别
dowhile为先执行再判断
for与while为先判断再执行
数组
数组的下标是从0开始的
int [] arr =new int []{1,2,3,4};
//其中的1为arr[0],2为arr[1];
数组的遍历
package com.ithema.define;
public class ArrayDemo3 {
public static void main(String[] args) {
//数组的遍历
int arr[] = {12, 14, 16};//arr.length为数组的长度
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
//arr.fori直接打印循环——————数组名.fori
}
}
实现数组倒序
package com;
public class ArrayDemo8shuzudaoxu {
public static void main(String[] args){
//实现数组倒序
int arr[]={10,20,30,40,50};
for (int i = 0,j= arr.length-1; i <j; i++,j--) {
int temp=arr[j];
arr[j]=arr[i];
arr[i]=temp;
}
for (int i = 0; i < arr.length ; i++) {
System.out.print(arr[i]+" ");
}
}
}
数组的动态赋值
public class ArrayDemo5 {
public static void main(String[] args) {
//动态初始化数组
//数据类型【】数组名=new 数组类型【数组长度】
int []ages=new int[3];//默认为零ages【0,0,0】
ages[0]=12;
ages[1]=17;
ages[2]=18;
//动态赋值
System.out.println(ages[0]);
System.out.println(ages[1]);
System.out.println(ages[2]);
char []arr=new char[3];
System.out.println((int)arr[0]);
}
}