目录
一、流程控制关键字
用在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就是方法的参数
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 + 数据
- 在调用方法后,可以接收返回值
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是方法结束的标志,后续不能有代码!!!
ps2: return还可以单独使用,即后面不跟数据,即只结束方法不返回数据
2.5 方法设计总结
- 方法不能嵌套,上下顺序随意
- 方法设计完 最终需要由主方法调用执行
- 方法有参数,调用时必须传入参数,按照方法设计的参数顺序,类型,个数传递
- 需要返回值时,在方法内写return+值,void改成对应数据类型
2.6 方法调用
方法和方法之间是可以相互调用的
方法调用只是为了启动程序
方法的返回值,返回给调用者
三、递归[熟悉]
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);
}
四. 总结
今天重点: 方法设计
- 参数怎么设计
- 返回值怎么设计
- 有参数,有返回值的方法怎么调用
- 方法之间如何调用(代码的执行顺序,参考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