感谢你的路过,希望学生的笔记能给你一点微不足道的参考(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;
/**
* 什么是Scanner类?
* 一个可以解析基本类型和字符串的简单文本扫描器
例如,用户从 System.in 中读取一个数:
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
//System.in 系统输入指的是通过键盘录入数据。
* 引用类型使用步骤是什么?
1,导包
导包怎么使用?
使用import关键字导包,在类的所有代码之前导包,
引入要使用的类型,java.lang包下的所有类无需导入。
导包的格式是什么?
import 包名.类名;
举例:java.util.Scanner;
2,创建对象
格式?
数据类型 变量名 = new 数据类型(参数列表);
举例:
Scanner input = new Scanner(System.in);
什么是创建对象?
使用该类的构造方法,创建一个该类的对象。
3,调用方法
什么是调用方法?
调用该类的成员方法,完成指定功能
格式?
变量名.方法名();
举例:int i = input.nextInt(); // 接收一个键盘录入的整数
举例: String str = input.next(); // 接收键盘录入的字符(串)
Scanner用法大全?
参考链接:https://blog.csdn.net/RiceVan/article/details/100109601
*/
public class Demo01_JieShao {
/**
* Scanner类讲解
* @param args
*/
public static void main(String[] args) {
demo03();
}
/**
* next()与nextLine()方法详解
* 1.都是吸取输入控制台输入的字符
* 2.next()方法不会吸取字符前和后的空格/Tab,只吸取字符,
* 开始吸取字符(字符前后不算)直到遇到空格/Tab/回车截取吸取
* 3.nextLine() 吸取字符前后的空格/Tab键
* 4.next()与nextLine(),遇到回车都截取吸取
*/
public static void demo01() {
// 第二步,创建对象
Scanner input = new Scanner(System.in);
// 提示信息
System.out.println("请输入数据:");
// 第三步,使用方法
/* 从控制台输入:abcd abcd abcd
* 输出的结果是:abcd
abcd abcd
* 因为next方法遇到了空格停止接收,所以只输出了abcd,
* nextLine方法开始从空格处开始接收直到遇到了第一个回车那么结束接收,
* 说明nextLine方法可以接收空格,next方法遇到空格等会停止接收
* ----------------------------------------------
* String str = input.next();
* System.out.println(str);
* String str2 =input.nextLine();
* System.out.println(str2);
*/
/* 先输入Tab键,然后输入abcd
* nextLine输出的abcd在中间,说明nextLine方法可以接收Tab键
* next输出的abcd在开头,说明next方法没有接收Tab键
------------------------------------------------
String str = input.nextLine();
System.out.println(str);*/
}
/**
* 练习:键盘输入两个int数字,并且求出和值。
思路:
1. 既然需要键盘输入,那么就用Scanner
2. Scanner的三个步骤:导包、创建、使用
3. 需要的是两个数字,所以要调用两次nextInt方法
4. 得到了两个数字,就需要加在一起。
5. 将结果打印输出。
*/
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);
}
/**
* 练习:键盘输入三个int数字,然后求出其中的最大值。
思路:
1. 既然是键盘输入,肯定需要用到Scanner
2. Scanner三个步骤:导包、创建、使用nextInt()方法
3. 既然是三个数字,那么调用三次nextInt()方法,得到三个int变量
4. 无法同时判断三个数字谁最大,应该转换成为两个步骤:
4.1 首先判断前两个当中谁最大,拿到前两个的最大值
4.2 拿着前两个中的最大值,再和第三个数字比较,得到三个数字当中的最大值
5. 打印最终结果
*/
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 {
/**
* 分支结构-if相关内容
* @param args
*/
public static void main(String[] args) {
demo04();
}
// 单if语句
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("回家吃饭");
}
// 标准的if-else语句
public static void demo02() {
int num = 666;
if (num % 2 == 0) { // 如果除以2能够余数为0,说明是偶数
System.out.println("偶数");
} else {
System.out.println("奇数");
}
}
// if..else if...else
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);
}
// 课上例子成绩分布,多重if..else语句
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 {
/**
* 分支结构-Switch相关内容
* @param args
*/
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的穿透性,简化代码
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 {
/**
* 循环结构-While相关内容
* @param args
*/
public static void main(String[] args) {
demo02();
}
// while例题
public static void demo01() {
Scanner input = new Scanner(System.in);
System.out.println("请输入班级总人数:");
// 使用变量studentNum记录班级总人数
int studentNum = input.nextInt();
// 用于记录循环的次数,以及控制循环何时结束
int i = 0;
// 定义变量sum,用于统计总分数
int sum = 0;
while(i < studentNum) {
i++;
System.out.println("请输出第"+i+"个学生的成绩:");
int s = input.nextInt();
sum +=s;
}
System.out.println("学生的平均成绩为:"+sum/studentNum);
}
// do...while与while的比较
public static void demo02() {
int i = 5;
/*
* do { i++; System.out.println(i); }while(i<5);
*/
while(i<5) {
i++;
System.out.println(i);
}
System.out.println("程序结束");
}
}
3.2.3for
格式:
for(初始化表达式①; 布尔表达式②; 步进表达式④){ 循环体③
}
流程:
执行顺序:
①②③④>②③④>②③④…②不满足为止。
①负责完成循环变量初始化
②负责判断是否满足循环条件,不满足则跳出循环 ③具体执行的语句
④循环后,循环条件所涉及变量的变化情况
图解:
代码:
package XunHuanJieGou;
public class Demo04_For {
/**
* 循环结构-For相关内容,嵌套循环
* @param args
*/
public static void main(String[] args) {
demo02();
}
// For例题:1加到100的和
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 hour = 0; hour < 24; hour++) { // 外层控制小时 for (int minute = 0; minute
* < 60; minute++) { // 内层控制小时之内的分钟 System.out.println(hour + "点" + minute +
* "分"); } }
*/
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 {
/**
* break与continue语句
* break是用于终止本轮所有次循环。即不执行本次循环中break后面的语句,直接跳出循环。
* continue是用于终止本轮本次循环。即本次循环中continue后面的代码不执行,进行下一次循环的入口判断。
* @param args
*/
public static void main(String[] args) {
demo02();
}
// Break
public static void demo01() {
for (int i = 1; i <= 10; i++) {
// 如果希望从第4次开始,后续全都不要了,就要打断循环
if (i == 4) { // 如果当前是第4次
break; // 那么就打断整个循环
}
System.out.println("Hello" + i);
}
}
// Continue
public static void demo02() {
for (int i = 1; i <= 10; i++) {
if (i == 4) { // 如果当前是第4层
continue; // 那么跳过当前次循环,马上开始下一次(第5层)
}
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 {
/**
* 图形打印
* @param args
*/
public static void main(String[] args) {
demo02();
}
/**
图形
*
***
*****
*******
解决方案:
外层循环控制行数:4
内层循环控制列数:第一行循环1次,2-3,3-5,4-7
*/
public static void demo01() {
for(int i=0;i<4;i++) {
// i: 0 1 2 3
for(int j=0;j<i*2+1;j++) {
System.out.print("*");
}
System.out.println();
}
}
/**
图形
*
***
*****
*******
解决方案:
外层循环控制行数:4
内层循环1,控制空格列数:第一行三个空格,第二行2空格,第三行1个空格,第四行0空格
内层循环2,控制*号列数:第一行时循环一次,第二行时循环3次,第三行循环五次,第四行循环7次
*/
public static void demo02() {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
for(int i = 1; i<=n; i++){
//输出n-i个空格
for(int j = 1; j<=n-i; j++){
System.out.print(" ");
}
//输出2*i-1个星
for(int j = 1; j<=2*i-1; j++){
System.out.print("*");
}
//换行
System.out.println();
}
}
/**
图形
*
***
*****
*******
*****
***
---*
解决方案:
菱形的上半部分:
外层循环控制行数:X
内层循环1,控制空格列数:第一行X-1个空格,第二行X-2空格,......第n行x-n空格
内层循环2,控制*号列数:第n行时循环2*n-1个*
下半部分:
外层循环控制行数:X-1
内层循环1,控制空格列数:第n行时n空格
内层循环2,控制*号列数:第n行时循环2*(x-n)-1个*
*/
public static void demo03() {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
//零形的上半部分
for(int i = 1; i<=n; i++){
//输出n-i个空格
for(int j = 1; j<=n-i; j++){
System.out.print(" ");
}
//输出2*i-1个星
for(int j = 1; j<=2*i-1; j++){
System.out.print("*");
}
//换行
System.out.println();
}
//零形的下半部分
for(int i = 1; i<=n-1; i++){
//输出n个空格
for(int j = 1; j<=i; j++){
System.out.print(" ");
}
//输出2*(x-n)-1个星
for(int j = 1; j<=2*(n-i)-1; j++){
System.out.print("*");
}
//换行
System.out.println();
}
}
}
四,综合练习
需求1:判断用户输入类型
public class Demo08_PanDuanShuRuLeiXing {
/**
* 判断用户输入类型
* @param args
*/
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入数字:");
// 在接收输入之前判断输入的类型是否为int
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 {
/**
* 出租车计费任务
* @param args
*/
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 {
/**
* 流程控制的逻辑训练任务
* @param args
*/
public static void main(String[] args) {
demo05();
}
/**
计算应缴金额 商场根据会员积分打折:
2000 分以内打 9 折, 4000 分以内打 8 折, 8000 分以内打 7.5 折, 8000 分以上打 7 折,
使用 if-else-if 结构,实现手动输入购物金额和积 分,计算出应缴金额
*/
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);
}
/**
* 计算该年该月天数
* 解决思路:
* 1,输入拷贝demo01,把接收类型换为int.
* 2,switch部分的例题拷贝到下面改一下输出,在加上闰年判断。
*/
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){
//1,3,5,7,8,10,12都是31天
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
System.out.println(year+"年"+month+"月有31天");break;
//4,6,9,11都是30天
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;
}
}
/**
* 图形打印:
* 解决思路:
* 1,第一,二个简单属于白给类型。第三个跟前面讲过的图形详解例题一毛一样,不做。
*/
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++) {// 因初始值设为1,故内循环条件+1
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++) {
//先取出个位数,任何三位数模10都会是个位数
ge=i%10;
//取出十位数,三位数除以10得到一个两位数,再模10,取到十位数
shi=(i/10)%10;
//取出百位数,任何三位数直接除以100遍可取到百位数
bai=i/100;
//判断i是否是水仙花数,如果是则输出结果,不是则退出
if(i==ge*ge*ge+shi*shi*shi+bai*bai*bai){
//使用print输出不换行,\t在数字之间添加一个制表符
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
感谢阅读,祝你从此一帆风顺。