首页 > 其他分享 >什么是方法

什么是方法

时间:2024-05-27 10:30:33浏览次数:25  
标签:int 什么 System println 方法 public out

目录

一、流程控制关键字

用在switch或者循环中的关键字: break , continue

1.1 break

break ,打断/破坏/中断

  • 在switch中使用,打断switch结果不再执行
  • 在循环中,中断当前这一层循环
 for (int i = 1; i < 11; i++) {
            System.out.println(i );
            if (i == 5) {
                break;
            }
        }
        System.out.println("---------" );

        for (int i = 1; i < 11; i++) {
            System.out.println("i = " + i);
            for (int j = 1; j < 11; j++) {
                System.out.println("j = " + j);
                if (j == 5){
                    break;
                }
            }
        }

        System.out.println("for之外" );

练习

题目10:编写一个程序,最多接收10个数,求这些数的和
注意:中途用户可以通过输入886终止程序,并显示输入数的和
提示: 需要使用break

 Scanner scanner = new Scanner(System.in);
        int sum = 0;
        for (int i = 1; i < 11; i++) {
            System.out.print("请输入第"+i+"个数:" );
            int num = scanner.nextInt( );
            if (num == 886) {
                System.out.println("提前结束啦!!!" );
                break;
            } else {
                sum += num;
            }
        }
        System.out.println("以上数字的和是:" + sum );

1.2 continue

continue 继续,只能在循环中使用,作用是中断一次循环,继续下次循环

 public static void main(String[] args) {

        for (int i = 1; i < 11; i++) {
            if (i == 5) {
                continue;
            }
            System.out.println(i );
        }

        // 逢7过
        for (int i = 1; i < 41; i++) {
            if (i % 7 == 0 || i % 10 == 7 || i / 10 == 7) {
                continue;
            }
            System.out.print(i +" ");
            if (i % 10 == 0) {
                System.out.println( );
            }
        }

        System.out.println("---------------" );
        for (int i = 1; i < 100; i++) {
            if (i % 7 == 0 || i % 10 == 7 || i / 10 == 7) {
                System.out.print(i+" ");
            }
        }
    }

二、方法设计[重点]

2.1 方法说明

什么是方法?
  • 方法(method),在其他语法中称为函数(function),即功能,那也就是,方法是完成一个功能的一段代码片段
为什么需要方法?
  • 方法可以让代码有隔离, 一功能一个方法
  • 方法可以使代码复用(封装的思想)
  • 方法可以让代码变的很灵活

2.2 无参无返回值


public class Demo3 {

    public static void test2() {
        int i = 2;
        System.out.println("test2()" + i);
    }

    // 主方法,是java程序唯一入口
    public static void main(String[] args) {
        // 方法设计完,需要在主方法内调用来使其执行
        // 通过 方法名() 调用
        test2();
        test2();
        test2();
        test1();
    }
    /**
     * void 就是无返回值
     * () 就是无参数
     * test1 是方法名
     */
    public static void test1(){
        int i = 1;
        System.out.println("无参无返回值代码....test1" + i);
    }
}

练习:

设计方法,完成输出1-100以内所有含7以及7的倍数的数字

public static void print7(){
    for(int i = 1;i < 101;i++) {
        if(i % 7 == 0 || i % 10 == 7 || i / 10 == 7){
            System.out.print(i+" ");
        }
    }
}

设计方法,打印一个5行的直角三角形

	// 设计方法,打印一个5行的直角三角形
    public static void printTriangle() {
        for (int i = 1; i < 6; i++) {
            for (int j = 1; j <= i; j++) {
                System.out.print("*");
            }
            System.out.println( );
        }
    }

ps: 别忘了主方法调用使其执行

// 一张纸厚度0.1mm,问叠多少次能到的珠穆朗玛峰高度8848m
// 设计方法,输出多少次

2.3 有参数无返回值

参数就是方法执行需要的数据,需要在方法定义时在方法的参数列表中()内,定义变量即可

public static void test(int a){} 其中这个int a就是方法的参数

image-20240520145417879


public class Demo4 {

    public static void main(String[] args) {
        // 方法有参数,调用时必须传参数
        // 即方法的参数(变量)赋值
        // printN(6);
        // printTriangle(100);
        // printSum(10);
        printLunch("大米套餐",8.8);
    }
    // 设计方法,展示今天吃什么饭,花多少钱
    public static void printLunch(String food,double price) {
        System.out.println("今天520,中午吃的"+food+",花费"+price+"块" );
    }

    // 设计方法,完成输出1-100以内
    // 所有含有指定数字以及指定数字倍数的数字
    public static void printN(int n) {
        for (int i = 1; i < 101; i++) {
            if (i % n == 0 || i % 10 == n || i / 10 == n) {
                System.out.print(i + " ");
            }
        }
        System.out.println( );
    }

    // 设计方法,打印一个指定行的直角三角形
    public static void printTriangle(int n) {
        for (int i = 1; i <= n; i++) {
            for (int j = 1; j <= i; j++) {
                System.out.print("*");
            }
            System.out.println( );
        }
    }

    // 设计方法,算出1-n之间的所有整数和,并输出
    public static void printSum(int n) {
        int sum = 0;
        for (int i = 1; i <= n; i++) {
            sum += i;
        }
        System.out.println("sum = " + sum);
    }
}

2.4 有参数有返回值

返回值,就是方法执行后返回的数据
  • 方法定义的返回值类型不能是void,而是写返回的数据的数据类型
  • 在方法的方法体{}内写return + 数据
  • 在调用方法后,可以接收返回值

image-20240520153920676

ps: 返回值的目的不是为了输出,返回的目的是为了后续给别人(其他程序)继续使用这个数据


public class Demo5 {

    public static void main(String[] args) {
        int c = add(2,3);
        System.out.println(c );

        String s = book("java从入门到精通");
        System.out.println(s);

        double avg = getAvg( );
        System.out.println("avg = " + avg);
    }

    // 设计方法,传入2个整数参数,计算和,然后两数之和
    public static int add(int a,int b){
        // int c = a + b;
        // return c;
        return a + b;
    }

    // 设计方法,给书加书名号后返回
    // 庆余年, 《庆余年》
    public static String book(String name){
        return "《"+ name + "》";
    }

    // 键盘输入三个数,返回他们的平均值
    public static double getAvg() {
        Scanner scanner = new Scanner(System.in);
        int sum = 0;
        for (int i = 1; i <= 3; i++) {
            System.out.println("请输入第"+i+"个数:" );
            sum += scanner.nextInt();
        }
        return sum / 3.0;
    }
}

ps: return是方法结束的标志,后续不能有代码!!!

image-20240520155840509

ps2: return还可以单独使用,即后面不跟数据,即只结束方法不返回数据

image-20240520160314190

2.5 方法设计总结

  1. 方法不能嵌套,上下顺序随意
  2. 方法设计完 最终需要由主方法调用执行
  3. 方法有参数,调用时必须传入参数,按照方法设计的参数顺序,类型,个数传递
  4. 需要返回值时,在方法内写return+值,void改成对应数据类型

2.6 方法调用

方法和方法之间是可以相互调用的

方法调用只是为了启动程序

image-20240520161411792

方法的返回值,返回给调用者

image-20240520161845658

三、递归[熟悉]

java运行是占用内存空间的,java的内存模型称为java虚拟机(jvm)

jvm中有几大区域,其中一个是

  • 栈: 方法执行进栈,执行完弹栈消失
    • 栈是一种先进后出的队列
  • 堆: 凡是new出来的对象进堆

递归就是方法循环重复调用,一直压栈(方法进入栈中),如果没有合理的控制,就会造成内存溢出

所以递归调用方法有风险,需要谨慎处理


更严谨的说,递归是自己调用自己

练习: 使用递归完成求阶乘.

   /**
     * 求阶乘
     * 5! = 5*4*3*2*1
     * 4! = 4*3*2*1
     */
    public static int jc(int n) {
        if (n == 1) {
            return 1;
        }
        return n * jc(n-1);
    }

image-20240520171017242

四. 总结

今天重点: 方法设计

  • 参数怎么设计
  • 返回值怎么设计
  • 有参数,有返回值的方法怎么调用
  • 方法之间如何调用(代码的执行顺序,参考jvm方法执行进栈)
  • 返回值返回给谁

更严谨的说,递归是自己调用自己

练习: 使用递归完成求阶乘.

   /**
     * 求阶乘
     * 5! = 5*4*3*2*1
     * 4! = 4*3*2*1
     */
    public static int jc(int n) {
        if (n == 1) {
            return 1;
        }
        return n * jc(n-1);
    }

标签:int,什么,System,println,方法,public,out
From: https://blog.csdn.net/m0_73940426/article/details/139220164

相关文章

  • 离散加工ERP做什么的
     万达宝仪表工厂ERP系不仅仅是一款软件,更是企业运营的得力助手,让我们一起来看看它如何助力您的企业。易上手的操作体验万达宝ERP系统以其高延展性和易操作性著称。我们的系统设计简洁直观,即便是初次接触ERP系统的用户也能快速上手。我们的目标是让每一位用户都能轻松管理......
  • 什么是Token?为什么大模型要计算Token数
    本文分享自华为云社区《【技术分享】什么是Token?为什么GPT基于Token定价》,作者:开天aPaaS小助手Tracy。在使用LLM大模型时,我们经常会遇到一个关键词,叫:Token。比如:最新版GPT-4Turbo模型最高支持128ktoken上下文;曾经GPT最强对手Claude-2.1支持最高200Ktoken上下文;......
  • String常用方法(4)及补充方法
    publicStringreplace(charoldChar,charnewChar)------将旧字符串替换成新的字符串publicString[]split(Stringstr)------根据str作拆分代码详情:publicclassDemo05{publicstaticvoidmain(String[]args){Stringcontent="java是世界上最好的java编程语......
  • Delphi CxGrid/CxDBTreeList等将排序筛选条件改为中文方法
    Delphi CxGrid/CxDBTreeList等将排序筛选条件改为中文方法一、加入cxLocalizer控件二、在FormCreate里加入以下代码procedureTForm1.FormCreate(Sender:TObject);begin cxLocalizer1.LoadFromResource(HInstance); cxLocalizer1.Language:='中文(简体,中国)';......
  • day14--Lambda、方法引用、算法、正则表达式、数据结构
    day14–Lambda、方法引用、算法、正则表达式、数据结构一、Arrays类接下来我们学习的类叫做Arrays,其实Arrays并不是重点,但是我们通过Arrays这个类的学习有助于我们理解下一个知识点Lambda的学习。所以我们这里先学习Arrays,再通过Arrays来学习Lamdba这样学习会更丝滑一些_.......
  • StackExchange.Redis跑起来,为什么这么溜?
    StackExchange.Redis是一个高性能的Redis客户端库,主要用于.NET环境下与Redis服务器进行通信,大名鼎鼎的stackoverflow网站就使用它。它使用异步编程模型,能够高效处理大量请求。支持Redis的绝大部分功能,包括发布/订阅、事务、Lua脚本等。由StackExchange团队维护,质量......
  • 什么是scrum中的3355?
    Scrum中的"3-3-5"是指Scrum中的一种工作时间规定,通常用于描述每个工作阶段的时间分配。"3-3-5"的含义是:3个时间框:指的是SprintPlanning、DailyScrum和SprintReview三个会议的持续时间。3周的Sprint:Sprint是Scrum中的一个迭代周期,"3"表示每个Sprint的持续时间......
  • 什么是DevOps?
    DevOps是一种软件开发和运维的文化、实践和方法论,旨在通过促进开发团队和运维团队之间的合作和沟通,实现软件开发、测试、部署和运维的高效、快速和可靠。1.DevOps倡导使用自动化工具和流程来提高开发、测试、部署和运维的效率,减少手动操作和人为错误。2.DevOps强调团队合作、沟......
  • 容器是什么
    什么是容器?容器是一种轻量级、可移植的软件包,它包含软件运行所需的所有内容,包括代码、运行时环境、系统工具、系统库和设置。容器使得开发、部署和管理应用程序变得更加高效,因为它们提供了一个标准化的环境,确保应用程序在任何地方都能以相同的方式运行。容器技术的核心优势在......
  • 解决前端性能瓶颈:高效处理大量数据渲染与复杂交互的策略与优化方法
    ✨✨祝屏幕前的小伙伴们每天都有好运相伴左右,一定要天天开心!✨✨ ......