一、方法
1.方法的介绍:
方法就相当于一个实现某样功能的代码块,好比说我需要实现多个需求,但是把多个需求的代码全写在一块就显得十分拥挤和不美观,同时也容易让思路混乱,所以就把一块块要实现的需求的功能代码,分割成一个个方法。不仅提高美观度,还提高了复用性,方法可以重复使用,上代码给大家看看,
public class MethodDef
{
// 一个标准的方法,main函数,是可以运行的,也是程序的入口
public static void main(String[] args) {
eat();
drink();
play();
happy();
}
// 方法的定义
public static void eat(){
System.out.println("吃");
}
public static void drink(){
System.out.println("喝");
}
public static void play(){
System.out.println("玩");
}
public static void happy(){
System.out.println("乐");
}
}
2.方法的定义:
这边正好说一下代码的定义方法
编辑
3.带参数的方法:

编辑
如果方法中的数据可以由调用者传入,那数据是不是就灵活了呢
是的,我们可以在方法的小括号中声明参数,准备接受调用者传入的数据
这些参数本质来说就是变量,接受数据用的

编辑
public class MethodPratice {
public static void main(String[] args) {
//判断两数之间的最大值
getMax(10,20);
}
public static void getMax(int num1, int num2 ){
int result = num1>num2? num1: num2;
System.out.println("最大值:"+ result);
}
}
4.带返回值的方法
A 方法产生的数据, B 方法想要使用的话, 就需要定义带返回值的方法
编辑
public class MethodWithParamsDemo {
public static void main(String[] args) {
// 计算不同商品的价格,参数是:单价、数量
double price = getPrice(53.5, 5);
System.out.println("商品的单价是:"+price);
// 求两数之余
}
public static double getPrice(double money,int num ){
double price= money*num;
return price;
}
}
5.方法的重载
在同一个类中,定义了多个同名的方法,但每个方法具有不同的参数类型或参数个数,这些同名的方法,就构成了重载关系 (Overload)
给大家出一个小题目:如果做出来了,把答案发在评论区,我看到了会回答
同一个类中,下面方法可以跟
public void method(double a , int b){
}构成重载的是:
A. public static void method(){}
B. public String method(double b, int a){}
C. private int method(double a){}
D. public void method2(int a, int b , int c){}
6.方法的注意事项
- 方法注意事项 -
- 方法不调用就不执行 -
- 方法与方法之间是平级关系,不能嵌套定义
-
- 方法的编写顺序和执行顺序无关
-
- 方法的返回值类型为void,表示该方法没有返回值,
- 没有返回值的方法可以省略return语句不写,如果要编写return,后面不能跟具体的数据。
二 流程控制语句
流程控制语句 : 通俗的说就是可以通过一些语句,来控制程序的执行流程,
1.顺序结构
就是java默认的执行流程,从上往下执行
2.分支结构
if语句三种格式:
格式: if(判断条件){ 语句体 }
编辑
代码说明
public class IfDemo {
public static void main(String[] args) {
System.out.println("开始");
int age = 19;
if (age >= 18) {
System.out.println("可以上网吧");
}
System.out.println("结束");
}
}
格式: if(判断条件){ 语句体 }else{ 语句体 }
编辑
public class IfDemo {
public static void main(String[] args) {
System.out.println("开始");
int age = 19;
if (age >= 18) {
System.out.println("可以上网吧");
} else {
System.out.println("未成年人禁止入内");
}
System.out.println("结束");
}
}
格式: if(判断条件){ 语句体 }else if(判断条件){ 语句体 } else{ 语句体 }
编辑
public class IfDemo1 {
public static void main(String[] args) {
System.out.println("开始");
int num = 8;
if (num == 1) {
System.out.println("会员身份");
} else if (num == 2) {
System.out.println("非会员身份");
} else {
System.out.println("数据有误");
}
}
}
注意事项
注意事项:
-
If 语句中,如果大括号控制的是一条语句,大括号可以省略不写 - (Tips : 刚入门的话不建议省略,编写 {} 可以提高代码阅读性)
-
if 语句的 ( ) 和 { } 之间不要写分号
-
if 语句的 ( ) 中需要产生 boolean 类型的结果,根据结果决定程序的走向
if语句三道练习题
public class IfTest1 {
public static void main(String[] args) {
// 红茶妹妹有21元钱,她攒了几天钱之后自己的钱比原来的两倍还多三块。绿茶妹妹有24元钱,她攒了几天钱之后自己的钱正好是原来的两倍。
// 那么红茶和绿茶现在的钱一样多,请问对么?请编写程序进行判断。
int redSister = 21;
redSister= 21*2+3;
int greenSister = 24*2;
if (greenSister == redSister){
System.out.println("对");
}else {
System.out.println("不对");
}
}
}
public class IfTest2 {
public static void main(String[] args) {
// 根据用户输入的年龄,输出对应的阶段:
// 小孩(0-12岁)、
// 青少年(13-18岁)
// 、成年人(19-59岁)和老年人(60岁及以上)
Scanner sc = new Scanner(System.in);
System.out.println("输入年龄:");
int num = sc.nextInt();
if (num>=0&& num<=12){
System.out.println("小孩(0-12岁)");
}else if (num>=13&& num<=18){
System.out.println("青少年(13-18岁)");
}else if (num>=19&& num<=59){
System.out.println("成年人(19-59岁)");
}else if (num>=60){
System.out.println("老年人(60岁及以上)");
}
}
}
public class IfTest3 {
public static void main(String[] args) {
// 定义一个字符,判断它是大写字母、小写字母还是其他字符。
char chars = 'a';
if (chars>='A'&&chars<='Z'){
System.out.println("大写字母");
}else if (chars>='a'&&chars<='z'){
System.out.println("小写字母");
}else {
System.out.println("其他字符");
}
}
}
switch语句
switch语句格式 :
switch (将要匹配的值) {
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
...
default:
语句体n+1;
break;
}
执行流程:
1. 拿着 () 中将要匹配的值, 跟case给出的选项, 逐个进行匹配
匹配成功, 执行对应的语句体, 再由break结束掉整个的switch语句
2. 如果给出的所有case, 都匹配失败了, 将会执行最后的 default, 由break结束掉整个的switch语句
代码解释
package com.itheima.mswitch;
import java.util.Scanner;
public class SwitchDemo1 {
/*
switch语句格式 :
switch (将要匹配的值) {
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
...
default:
语句体n+1;
break;
}
执行流程:
1. 拿着 () 中将要匹配的值, 跟case给出的选项, 逐个进行匹配
匹配成功, 执行对应的语句体, 再由break结束掉整个的switch语句
2. 如果给出的所有case, 都匹配失败了, 将会执行最后的 default, 由break结束掉整个的switch语句
需求: 键盘录入一个整数, 根据录入的数值, 程序打印出对应的星期
1 ---> 星期一
2 ---> 星期二
...
7 ---> 星期日
8 ---> 您的输入有误
*/
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入: ");
int week = sc.nextInt();
switch (week) {
case 1:
System.out.println("星期一");
break;
case 2:
System.out.println("星期二");
break;
case 3:
System.out.println("星期三");
break;
case 4:
System.out.println("星期四");
break;
case 5:
System.out.println("星期五");
break;
case 6:
System.out.println("星期六");
break;
case 7:
System.out.println("星期日");
break;
default:
System.out.println("您的输入有误");
break;
}
}
}
注意事项
表达式类型只能是byte、short、int、char 不支持 double、float、long JDK5开始支持枚举 JDK7开始支持String case给出的值不允许重复,且只能是字面量,不能是变量 正常使用switch的时候,不要忘记写break,否则会出现穿透现象
循环结构
for循环(先判断后执行)
格式: for(条件判断语句;初始化语句;条件控制语句) { 循环体语句; }
编辑
public class Fortest2 {
public static void main(String[] args) {
// 使用for循环,求出1-100之间的奇数之和。
int sum = 0;
for (int i = 1; i < 101; i++) {
if (i%2!=0){
sum+=i;
}
}
System.out.println(sum);
}
}
注意事项:
-
循环 { } 中定义的变量, 在每一轮循环结束后, 都会从内存中释放
-
循环 ( ) 中定义的变量, 在整个循环结束后, 都会从内存中释放
-
循环语句 ( ) 和 { } 之间不要写分号
while循环(先判断后执行)
初始化语句; while(判断语句){ 循环体语句; 控制语句; }
编辑
package com.itheima.homework;
public class whileTest1 {
public static void main(String[] args) {
// 使用while循环,实现求1-100之间的偶数之和
int sum = 0;
int i = 0;
while ( i<100){
if (i%2==0){
sum+=i;
}
i++;
}
System.out.println(sum);
}
}
public class Mount {
public static void main(String[] args) {
// 需求:世界最高山峰珠穆朗玛峰高度是:8848.86米=884886O毫米,假如我有一张足够大的纸,它的厚度是O.1毫米。
// 请问:该纸张折叠多少次,可以折成珠穆朗玛峰的高度?*/
int count = 0;
double paper =0.1;
while (paper<8848460){
paper=paper*2;
count++;
}
System.out.println(count);
}
}
do ...while(先执行后判断)(了解即可)
编辑
就是不管判断通不通过,都会执行一次
编辑
break and continue
编辑
package com.itheima.LoopDemo;
public class breakandcontinue {
public static void main(String[] args) {
/*
break: 跳出, 结束循环或switch语句
*/
for (int i = 0; i < 5; i++) {
if (i==3){
break;
}
System.out.println(i+"正在学习");
}
/*
continue: 跳过某次循环, 继续下一次循环
*/
for (int i = 0; i < 50; i++) {
if (i==3|| i==11){
continue;
}
System.out.println("老"+i+"s ");
}
lo:
for (int i = 1; i <= 5; i++) {
for (int j = 1; j <= 5; j++) {
if (j == 2) {
break lo;
}
System.out.println("HelloWorld");
}
}
}
}
Random生成随机数
编辑
猜数字小游戏
package com.itheima.test;
import java.util.Random;
import java.util.Scanner;
public class RandomTest {
public static void main(String[] args) {
guessNumber();
}
public static void guessNumber() {
// 1. 召唤Random精灵
Random r = new Random();
// 2. 召唤Scanner精灵
Scanner sc = new Scanner(System.in);
// 3. 指挥Random产生随机数 int randomNumber
int randomNumber = r.nextInt(100) + 1;
while (true) {
// 4. 录入用户猜的数据 int inputNumber
System.out.println("请输入: ");
int inputNumber = sc.nextInt();
// 5. 比大小, 给出提示
if (inputNumber > randomNumber) {
System.out.println("猜大了!");
} else if (inputNumber < randomNumber) {
System.out.println("猜小了!");
} else {
System.out.println("恭喜, 猜中了!");
break;
}
}
}
}