一、return语句
1、return语句是从当前整个方法中跳出返回到调用该方法的语句处,并从该语句的下条语句处继续执行程序。
2、返回语句的两种格式:
2.1、return expression;
-返回一个值给调用该方法的语句;
-返回值的数据类型必须和方法声明中的返回值类型一致或精度低于声明的数据类型
2.2、return
-当方法声明中用void声明返回类型为空时,应使用这种返回类型,它并返回任何值
二、多重循环
1、三种循环方式:while ; \ do..while ; \ for;
2、多重循环(循环嵌套):一个循环体内又包含另一个完整的循环结构、任何两种循环都可以相互嵌套、可以任意层次循环,但是一般不超过3层。
3、多重循环执行过程:外层循环变量变化一次,内层循环白能量要变化一遍。
①多重循环使用continue语句;
/*
3个班级各4名同学,统计成绩大于85的学生
*/
import java.util.Scanner;
public class Class{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("欢迎各位同学参加数学大赛!");
int sum = 0;
for(int i = 1;i <= 3;i++){
System.out.println("---------------");
System.out.println("请输入班级名称:");
int num = sc.nextInt();
for(int j = 1;j <= 4;j++){
System.out.println("请输入第" + j + "位同学的成绩:");
int cj = sc.nextInt();
if(cj > 85){
System.out.println("成绩优异!提出表扬!");
sum++;
continue;
}else{
System.out.println ("成绩还行!下次继续努力!");
continue;
}
}
}
System.out.println("本次大赛各班成绩优异的学生共有" + sum + "位同学!");
}
}
②百钱买百鸡;
/*
百钱买百鸡:公鸡5元1只,母鸡3元1只,小鸡1元3只;
*/
public class MaiJi{
public static void main(String[] args){
for(int i = 0;i <= 20;i++){
for(int j = 0;j <= 34;j++){
for(int k = 0;k <= 300;k++){
if(((i+j+k)==100)&&((5*i+3*j+k/3)==100)&&(k%3==0)){
System.out.println("公鸡:" + i +"母鸡:" + j +"小鸡:" + k);
}
}
}
}
}
}
③斐波那契数列;
/*
斐波那契数列
*/
import java.util.Scanner;
public class FeiBoNaQi{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("请输入您需要的斐波那契数列的多少位数字:");
int num = sc.nextInt();
int x = 1;
int y = 1;
int z = 0;
for(int i = 1;i <= num;i++){
if(i == 1 || i == 2){
System.out.print(1 + "\t");
}else{
z = x + y;
x = y;
y = z;
System.out.print(z + "\t");
}
}
}
}
④九九乘法表;
/*
九九乘法表:
*/
public class Nine{
public static void main(String[] args){
for(int i = 1;i < 10;i++){
for(int j = 1;j <= i;j++){
System.out.print(j + "*" + i + "=" + (i*j) + "\t");
}
System.out.println();
}
}
}
⑤循环录入三位顾客的会员信息,且使用到continue语句;
/*
循环录入三位顾客的会员信息
*/
import java.util.Scanner;
public class MyShopping{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("欢迎光临MyShopping管理系统 > 客户信息管理 > 添加客户信息:");
System.out.println();
for(int i = 1;i <= 3;i++){
System.out.println();
System.out.print("请输入会员号<4位整数>:");
int id = sc.nextInt();
System.out.print("请输入会员生日<月/日,使用两位整数表示>:");
String bs = sc.next();
System.out.print("请输入会员积分:");
int jf = sc.nextInt();
if(id > 999){
System.out.println("您录入的会员信息是:");
System.out.println( id +"\t" + bs + "\t" + jf);
continue;
}else{
System.out.println("客户号" + id + "是无效会员号!");
System.out.println("录入信息失败!");
continue;
}
}
}
}
⑥多重循环嵌套if语句;
/*
3个班级各4名同学,统计成绩大于85的学生
*/
import java.util.Scanner;
public class Class{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("欢迎各位同学参加数学大赛!");
int sum = 0;
for(int i = 1;i <= 3;i++){
System.out.println("---------------");
System.out.println("请输入班级名称:");
int num = sc.nextInt();
for(int j = 1;j <= 4;j++){
System.out.println("请输入第" + j + "位同学的成绩:");
int cj = sc.nextInt();
if(cj > 85){
System.out.println("成绩优异!提出表扬!");
sum++;
continue;
}else{
System.out.println ("成绩还行!下次继续努力!");
continue;
}
}
}
System.out.println("本次大赛各班成绩优异的学生共有" + sum + "位同学!");
}
}
⑦输入一个数,判断是奇数偶数;
import java.util.Scanner;
public class work1{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个数:");
int num = sc.nextInt();
if(num % 2 == 0){
System.out.println("偶数");
}else{
System.out.println("奇数");
}
}
}
⑧五位同学的成绩总和;
import java.util.Scanner;
public class work5{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个班5位同学的成绩:");
int sum = 0;
for(int i = 1;i <= 5;i++){
System.out.println("请输入第"+ i +"位同学的成绩:");
int num = sc.nextInt();
sum += num;
continue;
}System.out.println("5位同学的成绩总和为:" + sum);
}
}
三、递归算法:
1、什么是递归:-程序调用自身的编程技巧就叫做递归;
-一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法;
2、递归问题的特点:-一个大问题可被分解为若干层简单的子问题;
-子问题和其上层问题的解决方案一致;
-外层问题的解决依赖于子问题的解决;
3、递归算法的优缺点:
3.1递归的优点:简单的程序;
3.2递归的缺点:-递归调用会占大量的系统堆栈,造成栈溢出;
-在递归调用层次多时速度要比循环慢的多;
3.3递归的使用场合:-任何可以使用递归解决的问题也能使用迭代解决;
-当递归方法可以更加自然的反映问题,并且易于理解与调试
-并且不强调效率问题的时候,可以采用递归;
-在要求高性能的情况下尽量避免使用递归,即花时间又耗内存;