2020.10.13(11~14)

11.if和switch的异同

  • 相同之处:
    • 都是分支语言,多超过一种的情况进行判断处理。
  • 不同之处:
    • switch更适用于多分支情况,就是有很多种情况需要判断处理,判断条件类型单一,只有一个入口,在分支执行完后(如果没有break跳出),不加判断继续执行下去。
    • if—elseif---else多分枝主要适用于分支较少的分支结构,判断类型不是单一,只要一个分支被执行后,后边的分支不再执行
    • switch为等值判断,(不允许比如>= <=),而if为等值和区间都可以,if的使用范围大。

12.while和do—while的区别

  • while先判断后执行,第一次判断为false , 循环体一次都不执行。
  • do while先执行 后判断,最少执行1次。
  • 如果while循环第一次判断为true, 则两种循环没有区别。

13.return 、break和continue的区别和作用

  • return:return关键字并不是专门用于跳出循环的,return的功能是结束一个方法。一旦在循环体内执行到一个return语句,return语句将会结束该方法,循环自然也随之结束。与continue和break不同的是,return直接结束整个方法,不管这个return处于多少层循环之内。
  • break:break用于完全结束一个循环,跳出循环体。不管是哪种循环,一旦在循环体中遇到break,系统将完全结束循环,开始执行循环之后的代码。 break不仅可以结束其所在的循环,还可结束其外层循环。此时需要在break后紧跟一个标签,这个标签用于标识一个外层循环。Java中的标签就是一个紧跟着英文冒号(:)的标识符。且它必须放在循环语句之前才有作用。
  • continue:continue的功能和break有点类似,区别是continue只是中止本次循环,接着开始下一次循环。而break则是完全中止循环。
  • 总结:return:结束整个方法;break:退出循环;continue:跳过正在运行的循环,接着循环。

14.请使用递归算法计算n!

  • 一个正整数的阶乘(factorial)是所有小于及等于该数的正整数的积,并且0的阶乘为1。 自然数n的阶乘写作n!。1808年,基斯顿·卡曼引进这个表示法。 亦即n!=1×2×3×...×n。阶乘亦可以递归方式定义:0!=1,n!=(n-1)!×n。
    • 注:Recursion 读法:[rɪˈkɜ:rʃn] 递归
import java.util.Scanner;
public class Recursion {

public static int digui(int n){//递归算法(核心)

	   if (n <= 1) {

	        return 1;

	   }else {

	        return n * digui( n - 1 );

	   }

	}

public static void main(String args[]){

	    System.out.println("请输入需要求阶乘的数字(请输入一个整数):");

	    Scanner in = new Scanner(System.in);

	    int a = Integer.parseInt(in.nextLine());

	    System.out.println(digui(a));

	}

}

posted @ 2020-10-13 08:44  xiaokai9527  阅读(21)  评论(0)    收藏  举报