Java 基本结构和基本操作:
public class Test{
public static void main(String[] args){
System.out.println("Hello World!");
}
}
Print输出不换行
Println输出并换行
二:Java数据类型
- 基本数据类型
数据类型 | 位数 |
---|---|
Byte(字节型) | 8 |
Short | 16 |
Int | 32 |
Long | 64 |
Float | 32 |
Doublue | 64 |
Char | 8 |
Boolean(布尔) | 只有两个值,一个是true 和false
|
三、变量的定义
- 什么是变量
变量是相对于常量而言的,是可以变化的量
四 、变量的命名规则
- 只能使用数字,字母,下划线,$符号
- 数字不能开头
- 变量不能重名
- 不能用关键字和保留字
- 使用驼峰命名法
注:
-
重置窗口命令:
第一种:工具栏中 windows 点击,下拉框中选择 最后一项reset perspective
第二种:工具栏中 windows 点击 选择show view中去选择
Console 控制台
Error log 错误日志信息
Problems 显示问题的窗口
Progress 显示进度
Package 包
记
:每打完代码记得保存 ctrl+s保存
运行Java应用程序
点击带有main方法 右键 选择run as
选择 第二个 Java application
修改工程编译的方式
在工具栏中 project选择
1.自动编译 built Automaticlly 打钩就是自动编译
保存的时候就会自动编译
2.手动编译 Build All
快捷键 ctrl+b
编译文件的目录
在新建工程的时候,在java setting中最下方的文件夹选项中目录为编译后文件(.class) 文件的目录
修改编译目录
在project中选择 propeties中选择java build path
提示代码:
Alt+\
快速导包和删除多余的包的快捷键
Ctrl + shift + o
怎么显示行号
在代码编辑的左边缘,右键选择 show line numbers
输入和封装类
一、封装类
基本数据类型 | 封装类 |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Float |
float | Double |
double | Charcter |
char | Character |
bolean | Boolean |
-
装箱:
是从基本类型转化为封装类的过程称之为装箱 -
拆箱:
数据或是变量从封装类转化为基本类型的过程
注:
记住这两个概念
记:
类名首字母大写
二、输入和输出
java 里的输入
用Scanner函数
-
先写下Scanner函数:
按住Alt加 / 出现提示 选择Scnner函数 会自动的导包
如果没有导包会报错,可以用Ctrl + shift + o
自动导包,删除没有用到的包
import 路径:
记
每次新建的一类都会在最上面出现一个package 路径
-
拷贝代码:
一般需要重新导包
需要修改 package 的路径 -
输入:
使用系统函数Scanner
首先需要创建对象:Scanner 变量1=new Scannery(System.in);
如果输入的是int型的:接收的类型 变量2=变量1.nextInt();
如果类型不符合就会报类型转换异常
如果是float型:
float 变量3=变量1.nexFloat();
double 型的:
double 变量4=变量1.nextdoule
String 型的:
String line = 变量名.next();
String line = 变量名.nextLine();
······至此类推 -
输出:
System.out.print("输 出 内 容"); 注释:多行输出是不会换行
System.out.printLn("输 出 内 容"); 注释:多行输出会换行
例子:
调程序:
- 打断点(在行号的地方,双击 就会打上断点)
断点:程序跑到断点的地方会停下来 - 运行的时候
右键 Debug as ---run aplication
运算符
一、算术运算符
-
一元:
自增 ++
前缀++ ++变量
注意: 先运算再赋值
后缀++: 变量++
注意: 先赋值再运算,当下一次使用的时候就运算 -
二元:
+,-,*,/,%
( + - * )
与数学中的一样
重点了解:/,%- 注意点:
- 0是不能作为除数的
- %(取余)不能运算浮点数
- 取余只能运算整数
- 取余的符号是与被除数相同的
- /(取商)符号只要有一个是负数,结果就是负数
- 注意点:
-
关系运算符:
> , >= , < , <= == , !=
-
逻辑运算符:
&&(与),||(或),!(非)
&&与运算:
表达式1 | && 表达式2 | 结果 |
---|---|---|
0(false) | 0(false) | 0(false) |
1(true) | 0(false) | 0(false) |
0 | 1 | 0 |
1 | 1 | 1 |
|| 或运算:
表达式1 | 表达式2 | 结果 |
---|---|---|
1 | 0 | 1 |
1 | 1 | 1 |
0 | 1 | 1 |
0 | 0 | 0 |
-
赋值运算符
=
:将变量右边的值赋给左边
+
可以作为算术运算符也是连接运算符
"字符串" + 变量==
结果就是字符串
""
用双引号 引起来的是字符串
''
用单引号 引起来的是字符 -
类型的转换:
自动类型的转换:低精度转换成高精度
强制类型转换:高精度到低精度例子:
double num=3.2;
转换成int
强转
int num2=(int)num;
if结构和三元表达式
一、单层if结构
if(条件表达式){ /:程序的开始
/:条件表达式为true的时候执行的程序体
}/:程序的结束
二、 双层if
if(条件表达式){ /:程序的开始
/:条件表达式为true的时候执行的程序体
}else{ /:程序的开始
/: 条件表达式为false的时候执行的程序体
} /:程序的结束
Siring
进行比较的时候用equals
进行比较,比较的是内容
三、多分支if结构
if(条件表达式){
}else if(条件表达式2){
}....else{
}
注
:多分支的if结构,当其中的yig1条件结构成立的时候,其他的else if后面的条件表达式,不会进行判断了,直接到程序结束
一、基本的结构
switch(条件){
case 常量1:
//代码块
break;
case 常量2:
//代码块
break;
default:
//默认执行
}
题目:给成绩划分等级 60~70 及格 ,70~80中等,60及格,60以下不及格
public static void main(String[] args) {
System.out.println("请输成绩:");
Scanner reda =new Scanner(System.in);
float num =reda.nextFloat();
int num1=(int)num;
switch(num1/10){
case 10:
case 9:
System.out.print("优秀");
break;
case 8:
case 7:
System.out.print("中等");
break;
case 6:
System.out.print("及格");
break;
default:
System.out.print("不及格");
break;
}
-
switch
的注意点:
case
后面只能接常量(不能是字符串):case 常量:
switch(条件)
这个条件运算出来的结果只能int
型或者char
类型
一般记得加上break;
case
后面的常量不能是相同
default
只能放在最后面
如果是jdk是1.6及1.6之前的版本
在Java中switch的常量只能是int,cahr,byte
在java jdk版本1.7或者是1.7版本以上string类型的常量也是可以的。
二、whlie循环
- 基本的结构
while(条件){
//循环体
}
执行过程 当条件成立(运算的结果是非0的正整数或是boolean类型的true),就执行循环体
注:
while循环我们一般是把控制循环的变量放在循环体种
题目:用while循环写一个死循环
int num=2;
whlie(num>1){
}
三、do-whlie
- 基本结构:
do {
//循环体
} while (条件);
}
与while
循环的区别:do-while
始终都要执行一次循环,while
只有当条件成立的时候才会执行,其他的基本一致
四、怎么使用
-
基本上能用
switch
解决的我们都可以用结果来解决。使用switch
的时候会是规律明显(比如是给成绩排名的例子),产生有限的运算结果可以匹配。 -
使用
while
和do-while
的时候,需要注意执行的次数,如果第一次需要进入循环体就用do-while
合适。
五、随机数
Random ran=new Random();
int num = run.nextInt(n);
产生的随机数就是在0~n-1之间
是使用 java.iutl.Randon
的java自带包
如果要产生java,util.Random
的java自带包
如果要产生n~m之间的随机数,
int num=ran.nextInt(m-n+1) + n;
比如我们要产生5 ~ 10之间的随机数,nextInt(5),产生的是0~4的随机数,
所以我们产生0 ~ 5之间的随机数再加上5,的到5 ~ 10之间的随机数,使用我们应该用
nextInt(6)+5,得到5~10之间的随机数。
例子:
Random ran=new Random();
int num=ran.nextInt(3);
System.out.println("请您出拳");
Scanner read=new Scanner(System.in);
int num2=read.nextInt();
if((num2==0&&num==1)||(num2==1&&num==2)||(num2==2&&num==0)){
System.out.println("赢了,"
+ "电脑出的是"+
(num==0?"石头":(num==1?"剪刀":"布"))
+"你出的是"+
(num2==0?"石头":(num2==1?"剪刀":"布")));
}else if((num2==1&&num==2)||(num2==0&&num==2)||(num2==2&&num==1)){
System.out.println("你出的是"+
(num2==0?"石头":(num2==1?"剪刀":"布"))
+ "电脑出的" +
(num==0?"石头":(num==1?"剪刀":"布"))+"结果平了"
+ "赢了");
}else if(num2==num){
System.out.println("你出的是"+
(num2==0?"石头":(num2==1?"剪刀":"布"))+
"电脑出的是"+
(num==0?"石头":(num==1?"剪刀":"布"))+
"结果平了");
}
作业:
public static void main(String[] args) {
// 由电脑随机生成(1-10)一个数字,然后由你输入,
// 如果输入的数字比随机数字大,则提示你输入的数字太大
// ,否则,输入太小,当输入的数字等于随机的生成的数字时,
// 就打印恭喜你,猜对了
Random ran=new Random();
int num=ran.nextInt(10-1+1) + 1;
System.out.println("请输入一个数:");
Scanner rede=new Scanner(System.in);
int num1=rede.nextInt();
if (num1>num) {
System.out.println("数字太大随机数是"+num);
}else if (num1<num) {
System.out.println("数字太小随机数是"+num);
}else if (num1==num) {
System.out.println("猜对了随机数"+num);
}
}
}
for循环
一、for循环
- 基本结构:
for(表达式1(一般是初始化变量);条件2;表达式3){
//循环体
}//程序体的结束
用在循环次数确定的程序中。
在执行表达式1,之后进行条件的判断,如果条件成立执行循环体,如果不成立就跳出循环,在成立的情况下,执行完循环体,进入表达式3,再进行条件的判断,继续上面的步骤。
while(条件){//循环开始
//循环体
}//循环体的结束
do{//程序的开始
}while(条件);
异同:在知道循环次数的时候一般可以用for,
在不知道循环次数一般我们会选择while或者是do-while循环,
do-while循环,do-while不管循环的条件是什么都会执行一次循环体,
while 只有条件成立的时候会执行循环体。
二、跳出循环
-
break;
:跳出该层循环,循环不再继续 -
continue
: 跳出本次循环,进入下一次的循环
三、跳出循环
-
概念:嵌套循环就是循环里面嵌套循环。
例子:
for(表达式1;条件;表达式2){
for(表达式1;条件;表达式2){
}
}
四、一维数组和String
字符串的异同
-
定义:
arrary[]={数据};
String 变量名="字符串";
-
相同点:都是有序的,可以用下标号,拿到对应位置的字符
-
不同点:
String
存储时的长度是没有指定,数字要定义长度,开辟的空间大小是一定的。
String
在存储的时候会存储一个\0的结束字符,表达字符串的结束。
修改文件名用F2
改文件名一维数组
- 一维数组的定义
例如:定义一个int
型的数组
int arr [] = {1,2,3,4,5};
数据类型 变量名[]={数值1,数值2,...};
//定义并初始化
定义一个一维数组没有赋值
数据类型 变量[]=new 数据类型[个数];
//定义并开辟存储空间
数组里面存储的数据类型是相同的
如果个数是n,那么标号就是从0到n-1; 下标是从0开始的
for(表达式1(初始化变量);条件;表达式3){
//循环体
}
进入for循环的时候,首先执行表达式1,之后要判断条件是否成立,如果不成立,不执行循环体,如果成立执行循环体,在运行表达式3,再次判断条件是否成立,如果不成立跳出循环,成立执行循环体,在执行表达式3.....
二维数组
一、变量时相对于常量来说的是可以变化的量
- 例如:储存一个人名
String name="张三";
变量的定义:
数组类型 变量名=数组;
二、一维数组
定义:数据类型 数组[]=new 数据类型[长度];
特点是;数据类型都是相同的,
定义一维数组并初始化
数据类型 数组名[长度]={数值1,数值2,……};
三、二维数值
定义;数据类型 数组名[][]=new 数据类型[长度1][长度2];
数据类型 数组名[长度1][长度2]={{数值1,数组2,…},{数值3,数值4,…}…};
例子:
Int arr[2][2]={{1,2},{3,4}};
1 2 位置: arr[0][0] arr[0][1]
4 4 arr[1][0] arr[1][1]
可以用坐标来理解下标对应数值的位置.
四、二维数组打印杨辉三角
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
网友评论