写出0-999的水仙花数
public class Test2 {
public static void main(String[] args) {
printAllNarcissusNum(0,999);
}
public static void printAllNarcissusNum(int begin, int end) {
for(int i = begin;i<=end;i++){
if(isNarcissusNum(i)){
System.out.println(i);
}
}
}
public static boolean isNarcissusNum(int i) {
// 核心是把 i 中十进制的位给取出来.
int ge = i%10;
int tmp=i/10;
int shi = tmp%10;
tmp=i/100;
int bai = tmp%10;
if (cube(ge)+cube(shi)+cube(bai)==i){
return true;
}
return false;
}
public static int cube(int num){
return num*num*num;
}
0
1
153
370
371
407
猜数字游戏
// 猜数字游戏
guessNumberGame();
}
private static void guessNumberGame() {
while(true){
// menu用于和玩家进行交互
// 返回值表示玩家输入的选项
// 玩家输入1 表示开始一局猜数字游戏
// 玩家输入0 表示结束整个程序
int choice = menu();
if (choice==1) {
game();
}else if (choice==0){
System.out.println("goodbye");
break;
}else{
System.out.println("您的输入有误,请重新输入");
}
}
}
private static void game() {
// 1.先生成一个1-100之间的随机整数
Random random = new Random();
int toGuess= random.nextInt(100);
Scanner scanner = new Scanner(System.in);
while (true){
// 2.提示玩家输入一个整数
System.out.println("请输入一个整数:");
int num = scanner.nextInt();
// 进行判断
if (num<toGuess) {
System.out.println("小了");
}else if (num> toGuess) {
System.out.println("大了");
}else{
System.out.println("猜对啦");
break;
}
}
}
private static int menu() {
System.out.println("================");
System.out.println("1.开始游戏");
System.out.println("0.退出游戏");
System.out.println("================");
System.out.println("请输入您的选择:");
Scanner scanner = new Scanner(System.in);
int choice = scanner.nextInt();
return choice;
}
JAVA 中比较两个字符串是否相等 不能用== 而是用 eaqual
// 模拟用户登录
login();
}
public static void login() {
String password = "123456";
Scanner scanner = new Scanner(System.in);
int i = 0;
for ( ;i<3;i++){
System.out.println("请输入您的密码:");
String input = scanner.next();
if (input.equals(password) ) {
System.out.println("登陆成功");
break;
}else {
System.out.println("登陆失败");
}
}
//上述for退出的原因只有两种可能
// 1.for的条件不满足 三次耗尽
// 2.中间break 密码输对了
if (i==3){
System.out.println("您已经输错三次密码,程序强制终止。");
}
}
请输入您的密码:
123
登陆失败
请输入您的密码:
123
登陆失败
请输入您的密码:
123
登陆失败
您已经输错三次密码,程序强制终止。
IDEA中 ctrl+alt+T 触发surround功能 可以把某一段代码包裹到某种代码块中
栈 JAVA/JVM
是JVM中一块特殊的内存区域 JVM也是操作系统创建出来的一个JAVA进程
本来一个程序对于内存的使用都是要通过操作系统来进行管理
JAVA里为了让内存管理更加方便,会在JVM进程启动的时候,直接从操作系统这里申请一大块内存,自己再进行管理。
JVM会对申请到的这一大块内存进一步的进行区域划分
其中的一块区域就称为栈
入栈: 调用某个方法 就会把该方法对应的一些信息,放到栈里面
出栈:当某个方法执行完毕,就会把对应的信息从栈中删除掉
重载(overload)
重写(override)
构成方法重载的规则主要有两个:
1.方法名相同,但是方法的参数类型不同。编译器会根据实参的类型决定匹配哪个版本的方法来进行执行
2.方法名相同,但是方法的参数个数不同,编译器会根据实参的个数决定匹配哪个版本
注意事项:
a. 重载和返回值类型无关,如果两个方法,参数一样,方法名一样,返回值类型不一样,这种不构成重载,并且编译会出错
b.构成重载的两个方法,得是在同一个作用域中
数组
JAVA的数组 本质上就是让程序员能够批量创建一组相同类型的变量
// 创建数组
// 1 数组的元素通过{}来指定
int[]arr1 = new int[]{1,2,3,4};
// 2 数组的元素通过{}来指定
int [] arr2 = {1,2,3,4};
// 3 此时数组的每个元素都被初始化成了0
int [] arr3 = new int[4];
遍历
int[] arr = {1, 2, 3, 4};
// 遍历,按照一定顺序,把一个数组/集合中的每个元素都访问一遍
// 保证不重不漏
int i = 0;
for (; i <= arr.length; i++) {
System.out.println(arr[i]);
}
int[] arr = {1, 2, 3, 4};
// for each
for (int x : arr){
System.out.println(x);
}
=====================下一篇接数组======================