方法----数组 (4)

写出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);
        }

=====================下一篇接数组======================

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值