感谢你的路过,希望学生的笔记能给你一点微不足道的参考(3/100) Java基础思维导图,完整Java体系的链接
一,API
1.1什么是API,我们要学到什么程度?
??? 应用程序编程接口,我们只要会用即可。
1.2API使用步骤是什么?
??? 1. 打开帮助文档 ??? 2. 点击显示,找到索引,看到输入框 ??? 3. 你要找谁?在输入框里输入,然后回车 ??? 4.看包。java.lang下的类不需要导包,其他需要 ??? 5. 看类的解释和说明 ??? 6. 学习构造方法 ??? 7. 使用成员方法
二,Scanner类
2.1引用类型使用步骤是什么?
1,导包
导包怎么使用?
使用import关键字导包,在类的所有代码之前导包,
引入要使用的类型,java.lang包下的所有类无需导入。
导包的格式是什么?
import 包名.类名;
举例:java.util.Scanner;
2,创建对象
格式?
数据类型 变量名 = new 数据类型(参数列表);
举例:
Scanner sc = new Scanner(System.in);
什么是创建对象?
使用该类的构造方法,创建一个该类的对象。
3,调用方法
什么是调用方法?
调用该类的成员方法,完成指定功能
格式?
变量名.方法名();
举例:int i = sc.nextInt(); // 接收一个键盘录入的整数
2.2什么是Scanner类?
??? 一个可以解析基本类型和字符串的简单文本扫描器 ??? ??? 例如,用户从 System.in 中读取一个数: ??? ??? ??? Scanner sc = new Scanner(System.in); ??? ??? ??? int i = sc.nextInt(); ??? ??? ??? //System.in 系统输入指的是通过键盘录入数据。
2.3Scanner用法大全?
```php
package Scanner;
import java.util.Scanner;
public class Demo01_JieShao {
public static void main(String[] args) {
demo03();
}
public static void demo01() {
Scanner input = new Scanner(System.in);
System.out.println("请输入数据:");
}
public static void demo02() {
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
System.out.println("输入的int数字是:" + num);
int um = sc.nextInt();
System.out.println("输入的int数字是:" + um);
int c=num+um;
System.out.println("输入的和为:" + c);
}
public static void demo03() {
Scanner sc = new Scanner(System.in);
System.out.println("请输入第一个数字" );
int num = sc.nextInt();
System.out.println("请输入第二个数字" );
int um = sc.nextInt();
System.out.println("请输入第三个数字" );
int m = sc.nextInt();
int ma = num > um ? num : um;
int max = ma > m ? ma : m;
System.out.println("最大值是" +max );
}
}
三,执行结构概述
???概述 ??????任何简单或复杂的算法都可以由顺序结构、分支结构和循环结构这三种基本 结构组合而成。 它们的共同点是都包含一个入口和一个出口,它们的每个代码都有机会被执行,不会出现死循环。 ??????顺序结构 ?????????顺序结构是一种基本的控制结构,它按照语句出现的顺序执行操作 ??????分支结构 ?????????分支结构又被称为选择结构,根据条件成立与否来执行操作, ??????循环结构 ?????????循环结构是种重复结构,如果条件成立,它会重复执行某一循环体,直到出现不满足的条件为止。
3.1,分支结构
3.1.1if ???格式: ??????if(关系表达式){ 语句体; } ???流程 ??????首先判断关系表达式 ??????看其结果是true还是false 如果是true就执行语句体 如果是false就不执行语句体 ???图解 3.1.2-if…else ???格式: ??? ???if(关系表达式) { ??? ???语句体1; ??? ???}else { ??? ???语句体2; ??? ??? } ???流程: ??? ???首先判断关系表达式看其结果是true还是false ??? ???如果是true就执行语句体1 ??? ???如果是false就执行语句体2 ???图解: 3.1.3if…else if…else ???格式: ??????if (判断条件1) { ??????执行语句1; ??????} else if (判断条件2) { ??????执行语句2; ?????? }… }else if (判断条件n) { ??????执行语句n; ?????? } else { ??????执行语句n+1; ??????} ???流程: ??????首先判断关系表达式1看其结果是true还是false ??????如果是true就执行语句体1 ??????如果是false就继续判断关系表达式2看其结果是true还是false ??????如果是true就执行语句体2 如果是false就继续判断关系表达式 ??????…看其结果是true还是false …如果没有任何关系表达式为true,就执行语句体n+1 ???图解: 代码:
package FenZhiJieGou;
import java.util.Scanner;
public class Demo02_if {
public static void main(String[] args) {
demo04();
}
public static void demo01() {
System.out.println("今天天气不错,正在压马路……突然发现一个快乐的地方:网吧");
int age = 19;
if (age >= 18) {
System.out.println("进入网吧,开始high!");
System.out.println("遇到了一群猪队友,开始骂街。");
System.out.println("感觉不爽,结账走人。");
}
System.out.println("回家吃饭");
}
public static void demo02() {
int num = 666;
if (num % 2 == 0) {
System.out.println("偶数");
} else {
System.out.println("奇数");
}
}
public static void demo03() {
int x = -10;
int y;
if (x >= 3) {
y = 2 * x + 1;
} else if (-1 < x && x < 3) {
y = 2 * x;
} else {
y = 2 * x - 1;
}
System.out.println("结果是:" + y);
}
public static void demo04() {
Scanner input = new Scanner(System.in);
System.out.println("请输入成绩:");
int score = input.nextInt();
if (score >= 90 && score <= 100) {
System.out.println("优秀");
} else if (score >= 80 && score < 90) {
System.out.println("好");
} else if (score >= 70 && score < 80) {
System.out.println("良");
} else if (score >= 60 && score < 70) {
System.out.println("及格");
} else if (score >= 0 && score < 60) {
System.out.println("不及格");
} else {
System.out.println("数据错误");
}
}
}
3.1.4Switch ???格式: ??? ???switch(表达式) { ??? ???case 常量值1: 语句体1; break; ??? ???case 常量值2: 语句体2; break; ??? ???… default: 语句体n+1;break; ??????} ???switch 语句有关规则: ??? ???表达式的返回值必须是下述几种类型之一:int, byte, char, short,String; ??? ???case 子句中的取值必须是常量,且所有 case 子句中的取值应是不同的; ??? ???default 子句是可选的; break 语句用来在执行完一个 case 分支后使程序跳出 switch 语句块;如果 case 后面没有写 break 则直接往下面执行!Case 后面的执行体可写{ }也可以不写{ }. ???流程: ??? ???首先计算出表达式的值 ??? ???其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。 ??? ???最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。 ???图解: ???case的穿透性: ??? ???在switch语句中,如果case的后面不写break,将出现穿透现象,也就是不会在判断下一个case的值,直接向后运 行,直到遇到break,或者整体switch结束。由于case存在穿透性,因此初学者在编写switch语句时,必须要写上break。 代码:
package FenZhiJieGou;
import java.util.Scanner;
public class Demo03_Switch {
public static void main(String[] args) {
demo01();
}
public static void demo01() {
Scanner input = new Scanner(System.in);
System.out.println("请输入月份:");
int month = input.nextInt();
switch(month){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12: System.out.println(month + "月共有 31 天"); break;
case 4:
case 6:
case 9:
case 11: System.out.println(month + "月共有 30 天"); break;
case 2: System.out.println(month + "月共有 28 天"); break;
default : System.out.println("友情提示,您输入有误!"); break;
}
}
}
3.2,循环结构
???循环语句功能 ,在循环条件满足的情况下,反复执行特定代码 3.2.1while ???格式: ??????初始化表达式① while(布尔表达式②){ ??????循环体③ 步进表达式④ ??????} ???流程: ??????执行顺序: ?????????①②③④>②③④>②③④…②不满足为止。 ?????????①负责完成循环变量初始化。 ?????????②负责判断是否满足循环条件,不满足则跳出循环。 ③具体执行的语句。 ?????????④循环后,循环变量的变化情况。 ???图解: 3.2.2do…while ???格式: ??????初始化表达式① ?????? do{ ??????循环体③ ??????步进表达式④ ?????? }while(布尔表达式②); ???流程: ??????执行顺序: ?????????①③④>②③④>②③④…②不满足为止。 ?????????①负责完成循环变量初始化。 ?????????②负责判断是否满足循环条件,不满足则跳出循环。 ③具体执行的语句 ?????????④循环后,循环变量的变化情况 ???图解: ???特点: ??????无条件执行一次循环体,即使我们将循环条件直接写成false,也依然会循环一次。这样的 循环具有一定的风险性,因此初学者不建议使用do…while循环。 ???while 循环和 dowhile 循环的区别? ??????while:先判断条件,如果条件满足,再执行循环操作 ??????do while:先执行一遍循环操作,然后再判读条件,如果条件满足,继续执行循环操作。 代码:
package XunHuanJieGou;
import java.util.Scanner;
public class Demo05_While {
public static void main(String[] args) {
demo02();
}
public static void demo01() {
Scanner input = new Scanner(System.in);
System.out.println("请输入班级总人数:");
int studentNum = input.nextInt();
int i = 0;
int sum = 0;
while(i < studentNum) {
i++;
System.out.println("请输出第"+i+"个学生的成绩:");
int s = input.nextInt();
sum +=s;
}
System.out.println("学生的平均成绩为:"+sum/studentNum);
}
public static void demo02() {
int i = 5;
while(i<5) {
i++;
System.out.println(i);
}
System.out.println("程序结束");
}
}
3.2.3for ???格式: ??????for(初始化表达式①; 布尔表达式②; 步进表达式④){ 循环体③ ?????? } ???流程: ??????执行顺序: ?????????①②③④>②③④>②③④…②不满足为止。 ?????????①负责完成循环变量初始化 ?????????②负责判断是否满足循环条件,不满足则跳出循环 ③具体执行的语句 ?????????④循环后,循环条件所涉及变量的变化情况 ???图解: 代码:
package XunHuanJieGou;
public class Demo04_For {
public static void main(String[] args) {
demo02();
}
public static void demo01() {
int result = 0;
for(int i=1; i<=100; i++) {
result += i;
}
System.out.println("result=" + result);
}
public static void demo02() {
for(int i=0;i<10;i++) {
for(int j=0;j<10;j++) {
System.out.print("* ");
}
System.out.println();
}
}
}
3.2.4嵌套循环 ???定义: ??????指一个循环的循环体是另一个循环。比如for循环里面还有一个for循环,就是嵌套循环。总共的循环次数=外循环次数*内循环次数 ???格式: ??????for(初始化表达式①; 循环条件②; 步进表达式⑦) { ??????for(初始化表达式③; 循环条件④; 步进表达式⑥) { ??????执行语句⑤; ??????} ??????} ???流程: ??????执行顺序:①②③④⑤⑥>④⑤⑥>⑦②③④⑤⑥>④⑤⑥ 外循环一次,内循环多次。比如跳绳:一共跳5组,每组跳10个。5组就是外循环,10个就是内循环。 3.2.5补充 (1)循环语句的区别 控制条件语句所控制的那个变量,在for循环结束后,就不能再被访问到了,而while循环结束还可以继 续使用,如果你想继续使用,就用while,否则推荐使用for。原因是for循环结束,该变量就从内存中消 失,能够提高内存的使用效率。在已知循环次数的时候使用推荐使用for,循环次数未知的时推荐使用while。 (2)跳出语句 break:跳出循环 使用场景:终止switch或者循环在选择结构switch语句中 在循环语句中 离开使用场景的存在是没有意义的。 continue:跳出本次循环,进行下一次循环 使用场景:结束本次循环,继续下一次的循环 (3)如何退出多重循环? 看代码:给多重循环起别名,内层循环,break:别名;
package XunHuanJieGou;
public class demo06_TiaoChuXunHuan {
public static void main(String[] args) {
demo02();
}
public static void demo01() {
for (int i = 1; i <= 10; i++) {
if (i == 4) {
break;
}
System.out.println("Hello" + i);
}
}
public static void demo02() {
for (int i = 1; i <= 10; i++) {
if (i == 4) {
continue;
}
System.out.println("Hello" + i );
}
}
public static void demo03() {
haha:for(int i=0;i<10;i++) {
for(int j=0;j<10;j++) {
System.out.print("*i="+i+",j="+j);
if(i==5 && j==5) {
break haha;
}
}
}
}
}
循环语句练习(图形打印):
package XunHuanJieGou;
import java.util.Scanner;
public class Demo07_TuXingdaYin {
public static void main(String[] args) {
demo02();
}
public static void demo01() {
for(int i=0;i<4;i++) {
for(int j=0;j<i*2+1;j++) {
System.out.print("*");
}
System.out.println();
}
}
public static void demo02() {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
for(int i = 1; i<=n; i++){
for(int j = 1; j<=n-i; j++){
System.out.print(" ");
}
for(int j = 1; j<=2*i-1; j++){
System.out.print("*");
}
System.out.println();
}
}
public static void demo03() {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
for(int i = 1; i<=n; i++){
for(int j = 1; j<=n-i; j++){
System.out.print(" ");
}
for(int j = 1; j<=2*i-1; j++){
System.out.print("*");
}
System.out.println();
}
for(int i = 1; i<=n-1; i++){
for(int j = 1; j<=i; j++){
System.out.print(" ");
}
for(int j = 1; j<=2*(n-i)-1; j++){
System.out.print("*");
}
System.out.println();
}
}
}
四,综合练习
需求1:判断用户输入类型
public class Demo08_PanDuanShuRuLeiXing {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入数字:");
if(input.hasNextInt()) {
int num = input.nextInt();
System.out.println("输入的int数字是:" + num);
}else {
System.out.println("输入错误,请重新输入");
}
}
}
需求2:出租车计费任务(忘记需求了)
package RenWu;
import java.util.Scanner;
import javax.security.sasl.SaslServer;
public class Task01_ChuZuCheJiFei {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
double sum = 0;
double perPrice = 2.3;
double mileMoney = 0;
double lowSpeedMoney = 0;
double orderMoney = 0;
double emptyMoney = 0;
double nightMoney = 0;
double oilMoney = 1;
System.out.print("请输入总里程数");
double mile = input.nextDouble();
if (mile > 3) {
mileMoney = 13+(mile-3)*perPrice;
}else {
mileMoney=13;
}
System.out.println("是否有低速行驶(true/false)?");
boolean lowSpeedFlag = input.nextBoolean();
if(lowSpeedFlag) {
System.out.println("请输入低速行驶时间: ");
int minute = input.nextInt();
System.out.println("是否是在早晚高峰(true/false)?");
boolean rushFlag = input.nextBoolean();
if(rushFlag) {
lowSpeedMoney = minute/5*perPrice*2;
}else {
lowSpeedMoney = minute/5*perPrice*1;
}
}
System.out.println("是否预约叫车(true/false)?");
boolean orderFlag = input.nextBoolean();
if(orderFlag) {
System.out.println("请输入预约小时数:");
int hour = input.nextInt();
if(hour > 4) {
orderMoney = 6;
}else {
orderMoney = 5;
}
}
if(mile > 15) {
System.out.println("请输入是否往返在两公里范围内(true/false)?");
boolean roundFlag = input.nextBoolean();
if(!roundFlag) {
emptyMoney = (mile-15)*perPrice*1.5;
}
}
System.out.println("请输入是否夜间行驶(true/false)?");
boolean nightFlag = input.nextBoolean();
if(nightFlag) {
nightMoney = (mile-3)*perPrice*0.2;
}
sum = mileMoney+lowSpeedMoney+orderMoney+emptyMoney+nightMoney+oilMoney;
System.out.println("此次行程的总费用"+Math.round(sum));
System.out.println("里程费用"+mileMoney);
System.out.println("低速行驶费用"+lowSpeedMoney);
System.out.println("空驶费用"+emptyMoney);
System.out.println("夜间行驶费用"+nightMoney);
System.out.println("燃油附件费用"+oilMoney);
}
}
需求3:流程控制的逻辑训练任务
???1,计算应缴金额 商场根据会员积分打折: ???2,计算该年该月天数 ???3,图形打印: ???4,打印九九乘法表 ???5,打印水仙花数
package RenWu;
import java.util.Scanner;
public class Task02_LiuChengKongZhi {
public static void main(String[] args) {
demo05();
}
public static void demo01() {
Scanner input = new Scanner(System.in);
System.out.println("请输入积分:");
int score = input.nextInt();
System.out.println("请输入购物金额:");
double money = input.nextDouble();
if (score <= 2000 ) {
money = money*0.9;
} else if (score >= 2000 && score < 4000) {
money = money*0.8;
} else if (score >= 4000 && score < 8000) {
money = money*0.75;
}
else {
money = money*0.7;
}
System.out.println("应缴金额:"+money);
}
public static void demo02() {
Scanner input = new Scanner(System.in);
System.out.println("请输入年份:");
int year = input.nextInt();
System.out.println("请输入月份:");
int month = input.nextInt();
switch (month){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
System.out.println(year+"年"+month+"月有31天");break;
case 4:
case 6:
case 9:
case 11:
System.out.println(year+"年"+month+"月有30天");break;
case 2:
if(year%4==0&&year%100!=0||year%400==0){
System.out.println(year+"年2月有29天");
}else {
System.out.println(year+"年2月有28天");
}
break;
}
}
public static void demo03() {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
for(int i=1;i<=n;i++) {
for(int j=1;j<=i;j++) {
System.out.print("*");
}
System.out.println();
}
for(int i=1;i<=n;i++) {
for(int j=1;j<=n-i+1;j++) {
System.out.print("*");
}
System.out.println();
}
}
public static void demo04() {
System.out.println("九九乘法表");
for(int i=1;i<=9;i++) {
for(int j=1;j<=i;j++) {
System.out.print(j+"*"+i+"="+i*j+"\t");
}
System.out.println();
}
}
public static void demo05() {
int ge,shi,bai;
for (int i = 100; i < 1000; i++) {
ge=i%10;
shi=(i/10)%10;
bai=i/100;
if(i==ge*ge*ge+shi*shi*shi+bai*bai*bai){
System.out.print(i+"\t");
}
}
}
}
参考:距离记笔记的时候过了一段时间,如果我的笔记有明显借鉴了您的内容,请见谅。(我记忆力很差的,当初写笔记的时候,参考文档记录的可能不全) Scanner用法参考链接:https://blog.csdn.net/RiceVan/article/details/100109601 图形打印参考链接:https://blog.csdn.net/cui_yonghua/article/details/90581140 资料下载链接(笔记+代码+其他):百度网盘 链接:https://pan.baidu.com/s/1hhkEU7CiXeYZPgqddO4b6w 提取码:1111 感谢阅读,祝你从此一帆风顺。
|