JAVA方法和流程控制复习

本文介绍了JAVA编程中的流程控制结构,包括顺序、选择和循环结构,并通过实例展示了如何使用Scanner类进行用户输入处理,如求整数总和与平均数。此外,还讲解了方法的定义、调用、重载和重写,以及命令行参数的传递。同时,涉及了递归计算阶乘和值传递的概念。
摘要由CSDN通过智能技术生成

JAVA流程控制

Scanner类

package Scanner;

import java.util.Scanner;

public class Demo2 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("使用nextLine方式接收:");

        //NextLine 以回车为结束符
        //Next 以空格为结束符
        //hasNextFloat() 判断输入是否为小数
        //hasNextInt()  是否为整数
        if (scanner.hasNext())
        {
            String str = scanner.nextLine();
            String str = scanner.next();
            System.out.println("输出内容为:"+str);
        }
        //凡是属于IO流的类 如果不关闭会一直占用资源.
        scanner.close();

    }
}

实例1:输入多个整数,求总和与平均数,以字符结束输入并输出

package Scanner;

import java.util.Scanner;
public class Demo3 {
    public static void main(String[] args) {
        
        Scanner scanner = new Scanner(System.in);
        int a = 0;
        int count = 0;
        while (scanner.hasNextInt())
        {
            a = scanner.nextInt() + a;
            count ++ ;
        }
        System.out.println("总数:" + a);
        System.out.println("平均数:" + a/count);
        scanner.close();
    }
}

顺序结构

选择结构(if,switch,嵌套的if结构)

循环(for,do…while, while)

实例2:打印99乘法表

package Scanner;

public class Demo4 {
    public static void main(String[] args) {
        for (int j =1; j<=9;j++)
        {
            for (int i = 1; i<=j;i++)
            {
                System.out.print(j + "*" + i + "=" + (i*j) + "\t");//不换行print
            }
            System.out.println();//换行println
        }
    }
}

实例3:增强的for循环

package Scanner;
public class Demo5 {
    public static void main(String[] args) {
        int []a = {10,2,3,45,5};
		// 正常的for循环
        for (int i = 0;i<a.length;i++)
        {
            System.out.println(a[i]);
        }
        //增强for循环
        for(int x :a)
        {
            System.out.println(x);
        }
    }
}

break和continue

  1. break终止循环
  2. continue 终止某一次循环

java方法

java方法包含方法头和方法体

形式参数:在方法被调用时用于接收外界输入的数据。

实参:调用方法实际传给方法的数据。

修饰符  返回值类型  方法名(参数类型 参数名)
{
	....
	方法体
	....
 	return 返回值
}
// int a,int b , a,b就是形参
// add(c,d)  c,d 为实参
public  static  int add(int a,int b)
{
	int c = a+b;
	return c
}

方法调用

对象.方法名
Scanner scanner = new Scanner(System.in); 声明一个Scanner对象
scanner.nextInt()  // 调用nextint()方法

方法重载

​ 方法名一样,参数类型不同或数量或参数排列顺序不同, 返回值可以相同。

方法重写

​ 子类对父类方法的重写。

class Animal{
   public void move(){
      System.out.println("动物可以移动");
   }
}
 
class Dog extends Animal{
   public void move(){
      System.out.println("狗可以跑和走");
   }
   public void bark(){
      System.out.println("狗可以吠叫");
   }
}
 
public class TestDog{
   public static void main(String args[]){
      Animal a = new Animal(); // Animal 对象
      Animal b = new Dog(); // Dog 对象
 
      a.move();// 执行 Animal 类的方法
      b.move();//执行 Dog 类的方法
      b.bark();
   }
}

命令行传参

1.创建Demo类

2.javac Demo6.java

3.java Scanner.Demo6 + 参数

在这里插入图片描述

可变参数(不定项参数)

在方法声明中,在指定参数类型后加一个省略号(一个方法中可变参数必须是最后一个参数,一个方法只能有一个可变参数)

package Scanner;
public class Demo7 {
    public static void main(String[] args) {

        Demo7.test(1,2,3,4,5,6,7,5);
    }

    public static void  test(int... a)
    {
        for (int x:a)
        {
            System.out.println(x);
        }
    }
}
输出结果:12345675

值传递和引用传递

基本类型作为参数被传递时肯定是值传递;引用类型作为参数被传递时也是值传递,只不过“值”为对应的引用。(JAVA都是值传递)

递归

递归头:什么时候不调用自身方法。如果没有头,将陷入死循环

递归体:什么时候需要调用自身方法。

package Scanner;
public class Demo8 {
    public static void main(String[] args) {
        System.out.println(f(5));
    }
//    阶乘递归   (n>0适用)  n小于0的死循环。
    public static int f(int n)
    {
        if (n==1)
        {
            return 1;
        }
        else
        {
            return n*f(n-1);
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值