今日内容
- 流程控制关键字 break,continue
- 方法
复习
1 循环的四要素
- 初始值
- 控制条件
- 循环内容
- 迭代
2 for循环执行流程
for(初始值;控制条件;迭代){
循环体;
}3 while和do-while什么区别
- while先判断后执行
- dowhile是先执行再判断(先斩后奏)
4 手写代码,写出使用for循环输出1-10的和的代码
public class Homework{
public static void main(String[] args){
int sum = 0;
for(int i = 1;i < 11;i++){
sum += i;
}
System.out.print(sum);
}
}
一、流程控制关键字
在流程控制语句中使用的关键字,通过关键字改变原有效果
例如: switch中的break,可以打断switch执行,for中break可以中断循环
这些关键字有两个
- break
- continue
1.1 break
位置: break 只能在switch和循环中使用
作用: 在switch和循环中可以终止当前switch和循环(一层)执行
package com.qf.word;
/**
* --- 天道酬勤 ---
*
* @author QiuShiju
* @date 2024/2/23
* @desc break关键字
*/
public class Demo1 {
public static void main(String[] args) {
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; // 终止这一层循环
}
}
}
}
}
练习题
编写一个程序,最多接收10个数,求这些数的和
注意:中途用户可以通过输入886终止程序,并显示输入数的和
/** 思路:(任何代码出现3遍及以上,想到用循环)
* 循环10次
* scanner接收10个数
* 累加求和
* 遇到886 提前结束循环(break)
*/
public static void main(String[] args) {
// scanner可以new新建一个,一直使用
// 不用放在for中重复new
Scanner scanner = new Scanner(System.in);
int sum = 0;
for (int i = 1; i < 11; i++) {
System.out.println("请输入第"+i+"个数字:" );
int n = scanner.nextInt( );
if (n == 886) {
System.out.println("退出程序!" );
break;
}
sum += n; // 累加求和
}
System.out.println("sum = " + sum );
}
升级: 将输出的结果按照输入的数字累加的形式输出,例如
输入数字1,2,3,4,5,输出结果 “1+2+3+4+5=15”
package com.qf.word;
import java.util.Scanner;
/**
* --- 天道酬勤 ---
*
* @author QiuShiju
* @date 2024/2/23
* @desc break的练习
*/
public class Demo2 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int sum = 0;
String s = "";
for (int i = 1; i < 11; i++) {
System.out.println("请输入第"+i+"个数字:" );
int n = scanner.nextInt( );
if (n == 886) {
System.out.println("退出程序!" );
break;
}
sum += n;
if (i == 10) { // 是最后一次不拼接+号
s = s + n;
} else {
s = s + n + "+"; // 其他数字拼接+号
}
}
System.out.println(s + " = " + 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 );
}
}
二、方法
2.1 介绍
说明: 方法(method)就是函数,其实就是一段独立的代码片段,将代码单独
作用:
- 让代码抽取出来,单独执行—> 封装的思想
- 重复使用
2.2 语法
方法其实第一天就见过,天天用,就是主方法
方法定义的语法格式
public static 返回值数据类型 方法名(数据类型 变量名, 数据类型 变量名2,...) { } /* 1) public static 目前每个方法先固定写死,不要问!!!! 2) 返回值类型,是指这个方法执行完返回的数据的数据类型 如果方法执行完返回的整数,此处写int 如果方法执行完返回的小数,此处写double 如果方法执行完返回的字符串,此处写String 如果方法执行完没有返回数据 ,写void 3) 方法名,是自己定义的,见名知意即可,注意是小写的驼峰 例如: login,findUserById() 4)(),参数列表 参数: 是指方法执行需要的数据 参数的定义: 其实就是定义变量,数据类型 变量名,可以写多个 5) {} 方法体,方法执行的具体代码写在里面 */
2.3 无参 无返回值
public class Demo4 {
// 自己定义方法
public static void test(){
System.out.println("演示无参无返回值的方法" );
}
// 主方法,是程序的唯一入口
public static void main(String[] args) {
// 调用方法
test();
}
}
// 主方法,是程序的唯一入口
public static void main(String[] args) {
// 调用方法
printOddSum();
}
// 设计方法,输出计算1+3+5+...+99 的和
public static void printOddSum() {
int sum = 0;
for (int i = 1; i < 100; i++) {
if (i % 2 == 1) {
sum += i;
}
}
System.out.println("累加和:" + sum );
}
2.4 有参无返回值
参数: 是方法执行需要的数据
参数定义: 就是变量,使用数据类型 变量名即可
为什么要参数? 通过参数的设计,方法的功能会灵活多变
package com.qf.method;
/**
* --- 天道酬勤 ---
*
* @author QiuShiju
* @date 2024/2/23
* @desc 有参数的方法
*/
public class Demo5 {
// 主方法
public static void main(String[] args) {
// 方法有参数,调用时需要传参数
// 即给方法的变量赋值
printNum(15);
check(1);
// 方法有多个参数,要按照顺序和个数和类型传入
sum(1,2);
eat(3,"米饭");
length(10);
}
// 设计方法打印从1到指定值
// 方法设计参数,就是()中定义变量
public static void printNum(int n) {
for (int i = 1; i <= n; i++) {
System.out.println(i);
}
}
// 设计方法,输出给定数据是否是奇数/偶数
public static void check(int n) {
if (n % 2 == 0) {
System.out.println(n + "是偶数 ");
} else {
System.out.println(n + "是奇数");
}
}
// 参数可以是多个
// 设计方法,输出传入两个整数的和
public static void sum(int a, int b) {
System.out.println(a + "+" + b + "=" + (a + b));
}
// 设计方法,输出今天你吃的几碗饭
public static void eat(int n,String food){
System.out.println("我今天吃了"+n+"碗"+food );
}
// 写一个方法,输入圆形的半径,输出其周长
public static void length(int r) {
System.out.println("圆形的半径是"+r+",周长是:" + (2 * 3.14 * r) );
}
}
2.5 有参有返回值
返回值: 方法执行完返回的数据
需要注意定义返回值需要两步
- 在方法体中使用return+值返回数据
- 方法返回值类型将void变成对应的类型
思考,方法为什么需要返回值?
- 因为将一些功能代码封装在方法内,方法执行完后出现了结果
- 我们调用方法
- 方法返回给我们结果,可以根据返回的结果 再进行后续操作
简单说,就是方法的返回值返回给调用者,调用者要用方法的返回值
// 设计方法,传入圆的半径r,返回圆的面积
public static double area(int r){
double area = 3.14 * r * r;
return area;
}
2.6 注意事项
- 方法需要写在类中方法外,即方法不能嵌套定义,顺序随意
- main方法是唯一入口,自己的方法需要在main方法中调用才能运行
- 调用时有参数的方法,必须传参数
- 方法定义void,方法内部不能写return
- 方法内有return ,不能定义void’
- 方法的返回值是,是返回给调用者
- 方法可以互相调用
法的返回值**