目录
引用数据类型
除了基本数据类型之外的,如String
package com.jsoft.moring;
public class Test1 {
public static void main(String[] args) {
String v1="HelloWorld";
System.out.println(v1);
//拼接字符串
System.out.println("你好" + v1 + "世界");
}
}
包
实质上就是文件夹。
包的命名规则:
1.尽量使用全小写字母
2.包名当中尽量不要出现_ & 66
3.一般情况下,使用站点名的逆序:www.baidu.com
包名:com.baidu.模块名(search)
com.baidu.架构名
根据实际情况com.baidu.模块 架构 功能.××××一个点代表一级,文件夹的嵌套关系。
Scanner(首字母大写,是类)
// 构建一个工具,键盘输入
Scanner in = new Scanner(System.in);
// 开始输入
String sr = in.next();
System.out.println("你输入了:" + sr);
//.out:打印输出
//.in:输入,在控制台输入
流程控制
package com.jsoft.morning;
import java.util.Scanner;
public class Ch03 {
public static void main(String[] args) {
// 流程控制
/*
请输入第一个整数:
xxxxxxx
请输入第二个整数:
xxxxxxx
需求:
1.如果第一个数是8,并且第二个数是9,就打印两个数的和
2.如果其中有一个是8,有一个9,就打印两个数的差
3.如果两个数中既没有8也没有9,就分别打印两个数
*/
Scanner sc = new Scanner(System.in);
System.out.println("请输入第一个数:");
int num1 = sc.nextInt();
System.out.println("请输入第二个数:");
int num2 = sc.nextInt();
if (num1 == 8 && num2 == 9) {
System.out.println(num1 + "+" + num2 + "=" + (num1 + num2));
}else if(num1 == 8 || num1 == 9 || num2 == 8 || num2 == 9){
System.out.println(num1 + "-" + num2 + "=" + (num1 - num2));
} else if(num1!=8&&num2!=9&&num1!=9&&num2!=8) {
System.out.println("两个数分别为:" + num1 + "," + num2);
}
}
}
if(条件表达式){
要执行的语句
}
多重if
每个if之间没有联系,这些if有可能都执行
if(a == 10)
if(b == 20)
if...else if........else...
else 互斥的功能,一套结构中就至多走一个
在写if...else if的时候,要注意条件的顺序
int a = 10;
if(a > -1){
xxxxx
}else if(a > 0){
xxxx
}
如果情况比较多,条件判断比较复杂,最后一种情况不建议直接写else,最后面必须非常有把握,可以写else,否则,还是写else...if
例:
/* 成绩管理系统
键盘输入成绩
如果成绩是60分,及格
如果成绩是85分,奖励你一台ipad
如果成绩是100分,奖励你一台十三香promax
其他情况,没有奖励。*/
package com.jsoft.moring;
import java.util.Scanner;
public class Test4 {
public static void main(String[] args) {
Scanner pm = new Scanner(System.in);
System.out.println("请输入成绩:");
int pt = pm.nextInt();
// String str="你好";
switch (pt){
case 60:
System.out.println("及格!");
break;
case 85:
System.out.println("奖励你一台ipad");
break;
case 100:
System.out.println("奖励你一台十三香ProMax");
break;
default:
System.out.println("没有任何奖励");
}
}
}
switch :case
java里的switch只能判断:
①整型:int byte short
②浮点型float:都不行
③字符型:char
④布尔型:都不行
String:必须在jdk1.7(7)以后的版本,包括7
枚举:JDK5以后的版本包括5
switch结构清晰,简明扼要。不要强行用switch
break的作用:不写停不下来
default的位置是灵活的,不能乱放
数组
数组一旦声明,必须指定长度
package com.jsoft.morning;
public class Ch05 {
public static void main(String[] args) {
// 一维数组
int [] a1 = {1,2,3,4,5};
// int a2[] = {1,2,3,4,5};
//二维数组
//开发中,最多用到二维
int[][] [] a2 = new int[5][][];
int [] a3 = new int[]{1,2,3,4};
// int [] a4;
// a4 = new int[]{1,2,3,4};
// [I@6a5fc7f7
// 访问数组元素通过下标(索引)
// 下标、索引从0开始
/*
数据类型的初始值:
byte、short、int、long:0
float、double:0.0
char:\u0000=>' '
boolean:false
String:null
int[]:null
*/
// 取值
System.out.println(a3[0]);
// 赋值
/*
当程序抛出异常时,出现异常的位置后面的代码不会执行
*/
a3[100] = 100;
// 数组的长度是属性,不是方法
System.out.println(a3.length);
}
}
For循环
for (初始化语句;循环条件;迭代语句) {
循环体语句(重复执行的代码);
}
package com.jsoft.afternoon;
public class Ch01 {
public static void main(String[] args) {
var i = 10;
System.out.println(i);
/*
初始化条件实际上可以是任意类型,只不过大部分情况我们使用的是int
*/
for(int i = 0;i < 10;i++){
System.out.println("i=" + i);
}
for(int i = 10;i > 0;i--){
System.out.println("i=" + i);
}
}
}
嵌套循环
循环中包含循环
特点:外部循环每循环一次,内部循环全部执行完一次
package com.jsoft.afternoon;
public class Ch01 {
public static void main(String[] args) {
for (int i = 0; i < 5; i++) {
System.out.println("----------");
for (int j = 0; j < 3; j++) {
System.out.println("我爱你");
}
}
}
}
打印输出矩形
package com.jsoft.afternoon;
public class Ch02 {
public static void main(String[] args) {
/**
* *****
* *****
* *****
* *****
* *****
* 矩形
* 用循环的嵌套
* 需要用到不换行的打印输出....
*/
for (int i = 0; i < 5; i++) {
/*
执行流程:
1.i=0 外层的for循环启动
2.执行外层的for循环的循环体
3.走里层的for循环(循环体)
4.里层的for循环想要走完j=0---j=4打印了5次*号
5.里层的for循环走完了之后,相当于外层循环的循环体执行完毕
6.也就是i=0的这次外层循环执行完毕,开始执行i++
7.i=1 外层的循环再次启动
.....
*/
for (int j = 0; j < 5; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
跳转语句
break:跳出并结束当前所在循环的执行(只能用于结束所在循环,或者结束所在switch分支的执行)
continue:用于跳出当前循环的当次执行,开启下一次循环(只能在循环中进行使用)
package com.jsoft.afternoon;
public class Ch03 {
public static void main(String[] args) {
// break和continue
for (int i = 1; i < 10; i++) {
// 需求 数7
// 从0到100 尾数是7或者是7的倍数
if(i % 7 == 0 || i % 10 == 7){
System.out.println("你数到了:" + i + ",喝酒吧!");
// 跳出循环
break;
}
}
}
}
continue:
package com.jsoft.afternoon;
public class Ch03 {
public static void main(String[] args) {
// break和continue
for (int i = 1; i < 10; i++) {
// 需求 数7
// 从0到100 尾数是7或者是7的倍数
if(i % 7 == 0 || i % 10 == 7){
System.out.println("你数到了:" + i + ",喝酒吧!");
// 跳出循环
break;
// 终止当前次循环,开启下一次循环
// continue;
} else {
System.out.println(i);
}
System.out.println("哈哈哈!");
}
}
}
计算器:
package com.jsoft.afternoon;
import java.util.Scanner;
public class Calculator {
public static void main(String[] args) {
// 可以理解为是准备了一个键盘
Scanner sc = new Scanner(System.in);
index:for(;;){
System.out.println("请输入第一个数:");
double num1 = sc.nextDouble();
n2:for(;;){
System.out.println("请输入第二个数:");
double num2 = sc.nextDouble();
fh:for(;;){
System.out.println("请输入运算符号:+-*/");
String sep = sc.next();
switch(sep){
case "+":
System.out.println(num1 + sep + num2 + "=" + (num1 + num2));
break;
case "-":
System.out.println(num1 + sep + num2 + "=" + (num1 - num2));
break;
case "*":
System.out.println(num1 + sep + num2 + "=" + (num1 * num2));
break;
case "/":
if(num2 == 0){
System.out.println("除数不能为0,计算错误...");
continue n2;
}else {
System.out.println(num1 + sep + num2 + "=" + (num1 / num2));
break;
}
default:
System.out.println("符号输入错误,请重新输入...");
continue fh;
}
c:for(;;){
System.out.println("是否继续计算:1、继续 2、退出");
String flag = sc.next();
// 我让你输入1或者2,你非得输入3,结果就是你去重新选择
switch (flag){
case "1":
// 继续计算
continue index;
case "2":
// 退出计算
System.out.println("计算器即将关闭,谢谢使用...");
break index;
default:
// 再重新让你选择一次
System.out.println("您输入的有误,请重新选择!!!");
continue c;
}
}
}
}
}
}
}
数组的遍历
foreach
forEach是最简单、最常用的数组遍历方法,它提供一个回调函数,可用于处理数组的每一个元素,默认没有返回值。
package com.jsoft.afternoon;
public class Ch05 {
public static void main(String[] args) {
// foreach,增强for循环
// 使用for循环遍历数组
int [] arr = new int[]{12,45,76,89,-50};
// 遍历,把数组中的元素都操作一遍(访问一遍)
// for (int i = 0; i < arr.length; i++) {
// System.out.println(arr[i]);
// }
// foreach语句(增强for循环)遍历数组
/*
可以理解为把数组中的元素通过:镜像给i
我们操作的不是原始数据,我们操作的是镜像数据
foreach的操作更加的安全,不影响原始数据
foreach是JDK5以后才有的
*/
for (int i : arr) {
// i就是数组中的元素
System.out.println(i+1);
}
}
}
猜数字
package com.jsoft.afternoon;
import java.util.Random;
import java.util.Scanner;
public class DoWhile {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
Random random=new Random();
System.out.println("请输入一个数字:");
int guess=random.nextInt(20);
while (true){
int gue=scanner.nextInt();
if (guess<gue){
System.out.println("大了");
} else if (guess>gue) {
System.out.println("小了");
} else { // else if (guess==gue)
System.out.println("恭喜你,猜对了!");
break;
}
}
}
}