IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> java之逻辑控制+方法的使用 -> 正文阅读

[Java知识库]java之逻辑控制+方法的使用

java之逻辑控制+方法的使用

  • 顺序结构?

    代码一行一行写,执行也是一行一行从上往下去执行,这就是所谓的顺序结构。

  • 分支结构🏸

  1. if语句:

    形式一:

    if(布尔表达式){
        内容;
    }
    

    形式二:

    if(布尔表达式){}else{
        ;
    }
    

    形式三:

    if(布尔表达式1){}else if(布尔表达式2){}else{
        ;
    }
    

    悬垂else问题:ele总与最接近的if相匹配(不加大括号的时候)

  2. Switch语句

    switch(整数|枚举|字符|字符串){
            case 内容1:
                内容满足时要执行的语句;
                break;
            case 内容2:
                内容满足时要执行的语句;
                break;
            ...;
            default:
                语句;
                break;      
    }
    
    

    break最好不要遗漏,否则失去多分支选择的效果

  • 循环结构🍰

    1. while循环
    while(循环条件){//循环条件为true则执行语句,否则不执行
        循环语句;
    }
    
    • 注意事项:
      1. while的语句体不加大括号,循环条件满足只能管一条
      2. 与if类似,while后面的{与while写在同一行
      3. 与if类似,while后面不要加封号,否则循环不可正确执行
    • break:跳出最近的循环
    • continue:跳出本次循环continue一下的代码,转而去执行下一次循环。

    2.for循环

    for(表达式1;表达式2;表达式3){//1为初始化部分;2为判断部分;3为调整部分
        循环体;
    }
    

    3.do while循环

    do{
        循环语句;
    }while(循环条件);
    

    至少执行一次

  • java的输出🗡

    System.out.println(msg);//输出一个字符串,并换行
    System.out.print(msg);//输出一个字符串,不换行
    System.out.printf(format,msg);//同C
    
  • 从键盘输入🦅

    第一步:导入包:import java.util.Scanner;//封号别忘记了

    第二步:为从键盘读入作准备:Scanner scan=new Scanner(System.in);

    第三步:开始读取:如int a=scan.nextInt();等

  • 使用Scanner循环读取N个数字🚒

Scanner sc=new Scanner(System.in);
while(sc.hasNextInt()){
    ;
}
  • 猜数字游戏💎
import java.util.Scanner;//导入包:Scanner
import java.util.Random;//导入包:Random
public class TestDemo{
    public static void menu(){
        System.out.println("*********************");
        System.out.println("*******0.Exit********");
        System.out.println("*******1.Play********");
        System.out.println("*********************");
    }
    public static void game(){
        Random random=new Random(System.in);
        int rand=random.nextInt(100)+1;//[1,100]
        while(true){
            int x=scan.nextInt();
            if(x>rand){
                System.out.println("猜大了")
            }else if(x<rand){
                System.out.println("猜小了")
            }else{
                System.out.println("恭喜你猜对了!")break;//猜对为止
            }
        }
    }
    public static void main(String[] args){
        Scanner scan=new Scanner(System.in);
        int input=0;
        do{
            System.out.println("请选择:");
            input=scan.nextInt();
            switch(input){
                case 1:
                    game();
                    break;
                case 0:
                    System.out.println("退出游戏成功");
                    break;
                default:
                    System.out.println("输入有误");
                    break;
            }
        }while(input);
    }
}

  • 一些值得注意的点??
  1. 用scanner从键盘读入数据若是既有字符串的读取又有整数的读取,建议先字符串后整数,否则易出bug,这也是java读取时的弊端之一。

  2. 导包其实是在打开java中的一个资源,类似C中的头文件;最后结束读取时,可以加上一句:

    scanner.close();

  3. java中的switch语句中:switch后面括号内的东西只能是整数|枚举|字符|字符串

  4. java中的for循环判断部分省略也是默认为真。


方法的使用(类似于C中的函数)

  • 基本使用
//方法的定义
public static 方法返回值类型 方法名称(形参1,形参2...{
    方法体;
    return 返回值;//返回值类型为非void
}
  • 方法调用的执行过程

    1. 与C一样,只有调用一个方法的时候,方法的代码才会被执行
    2. 方法被调用时,视情况看是否传实参,有时候无形参就不用传实参了
    3. return后返回主函数(main函数)
    4. 一个方法可以被多次调用
  • 方法调用时的注意事项

    1. 跟C一样要注意是传值还是传址,当然java中没有地址一说,在java中叫引用,说法是:一个引用指向一个对象。一般地:引用存在JVM虚拟机栈内,而对象存在堆内,函数调用结束,JVM虚拟机栈的方法所占据的内存被回收,但是堆内的东西还在,所以说一句话:在JAVA中返回一个指向对象的引用没事!,不像C中,不可以返回局部变量的地址!
    2. 对于基础类型来说:形参相当于实参的临时拷贝,即传值调用,对形参的修改不会影响到实参哦。
  • 方法的重载同一个方法名,提供不同版本的实现

    就是说:在C中一个函数的形参类型定死了,那调用这个函数的时候,传过来的实参的类型也必须与之相匹配,否则就掉用不了。而换一个数据类型,想实现相同的功能时,就得重新再编一个函数。在java中,我们可以用相同的函数名,仅修改形参的类型,就可以做到重载,实现上述的目的。注意:返回值是什么类型,不影响重载与否。如:

    public static void main(String[] args){
        int a=10;
        int b=20;
        double c=1.1;
        double d=1.2;
        int sum1=add(a,b);
        double sum2=add(c,d);
        System.out.println(sum1);
        System.out.println(sum2);
    }
    public static int add(int x,int y){
        return x+y;
    }
    public static double add(double x,double y){
        return x+y;
    }
    

    重载的规则

    1. 方法名相同
    2. 方法的参数不同(参数个数或者参数类型至少一个)
    3. 方法的返回值类型不影响重载

  • 方法的递归

    “我调我自己”

    案例:

    1. 打印一个数字的每一位
public static void print(int x){
    if(x>9){
        print(x/10);
    }
    System.out.print(x%10);
}

? 2.递归实现1+2+3+…+10

public static int sum(int x){
    if(x>1){
        return x+sum(x-1);
    }
    return x;
}

? 3.递归实现方法:输入一个非负整数,返回组成它的数字之和,例如:输入1729,则返回1+7+2+9,其和为19.

public static int sum(int x){
    if(x>9){
        return x%10+sum(x/10);
    }
    return x;
}

4.求斐波那契数列第n项

public static int fib(int x){
    if(x<=2){
        return 1;
    }else{
        return fib(x-1)+fib(x-2);
    }   
}//该方法重复计算特别多,效率极低,以下再说一遍个递归的方法
public static int fib(int x){
    int f1=1;
    int f2=1;
    int f3=0;
    for(int i=3;i<=x;i++){
        f3=f1+f2;
        f1=f2;
        f2=f3;        
    }
    return f3;
}

递归小结📦

  1. 有些问题天然就是要使用递归(如斐波那契数列、二叉树等),此时使用递归求解就比较容易
  2. 有些问题使用递归和非递归都可以解决,那么此时更推荐使用迭代,相比于递归,非递归更加高效。

小总结

  1. java中的开根号:Math.sqrt(数字),直接用不用导包
  2. 一个函数的返回值给其他函数使用,这叫链式访问
  3. java中的方法或者说函数,定义在主函数前面或者后面都是可以的。

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-11-09 19:20:29  更:2021-11-09 19:21:35 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 0:37:23-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码