JAVA学习(四)循环语句、跳转语句、方法(函数)
今天学习流程控制语句之循环语句、控制跳转语句、方法(函数)
前言
循环语句里面包含很多逻辑,在不少实际问题中有许多具有规律性的重复操作,因此在程序中就需要重复执行某些语句。我想在某个循环执行到某一步的时候就结束,Java就提供了break,continue和return来实现控制语句的跳转和中断。 方法就是完成特定功能的代码块,在很多语言中都有函数的定义,但是在咱们JAVA语言中,我们将其称之为方法。
一、循环语句
循环结构的分类:for循环和while循环
for循环
- for语句的格式
for(初始化表达式语句;判断条件语句;控制条件语句) {
循环体语句;
}
- 执行流程:
a:执行初始化表达式语句
b:执行判断条件语句,看其返回值是true还是false
如果是true,就继续执行
如果是false,就结束循环
c:执行循环体语句;
d:执行控制条件语句
e:回到b继续。
示例:在控制台输出所有的”水仙花数” ,所谓的水仙花数是指一个三位数,其各位数字的立方和等于该数本身。
举例:153就是一个水仙花数。153 = 1x1x1 + 5x5x5 + 3x3x3 = 1 + 125 + 27 = 153。
class Test3_Flower {
public static void main(String[] args) {
for (int i = 100;i <= 999 ;i++ ) {
int ge = i % 10;
int shi = i / 10 % 10;
int bai = i / 100 % 10;
if (ge * ge * ge + shi * shi * shi + bai * bai * bai == i) {
System.out.println(i);
}
}
}
}
While循环
- while语句的格式
初始化条件语句;
while(判断条件语句) {
循环体语句;
控制条件语句;
}
- 执行流程
a:执行初始化条件语句;
b:执行判断条件语句,看其返回值是true还是false
如果是true,就继续执行
如果是false,就结束循环
c:执行循环体语句;
d:执行控制条件语句
e:回到b继续。
示例:输出1-10,并且求和。
class WhileDemo{
public static void main(String[] args) {
//同一个作用域里面,不能定义同名变量
//循环的初始值
int j=1;
while(j<=10){
System.out.println(j);
j++;
}
System.out.println("--------------------------------------");
int k=1;
int sum=0;
while(k<=10){
sum+=k;
k++;
}
System.out.println("和是:"+sum);
}
}
- do…while语句的格式:
初始化条件语句;
do {
循环体语句;
控制条件语句;
}while(判断条件语句);
三种循环语句的区别
(1):do…while循环至少执行一次循环体。
而for,while循环必须先判断条件是否成立,然后决定是否执行循环体语句。
(2):A: 如果你想在循环结束后,继续使用控制条件的那个变量,用while循环,否则用for循环。不知道就用for循环。因为变量及早的从内存中消失,可以提高内存的使用效率。
B: 建议优先考虑for循环,然后是while循环 ,最后是do…while循环
二、控制跳转语句
- 控制跳转语句的分类: break 中断、continue 继续、return 返回
1.break
- break的使用场景
(1):在选择结构switch语句中
(2):在循环语句中
注意:离开使用场景的存在是没有意义的 - 作用
a:退出单层循环
b:退出多层循环(几乎不使用)
要想实现这个效果,就必须知道一个东西;带标签的语句;
格式:标签名:语句
2.continue
- continue的使用场景
(1):在循环语句中
(2):离开使用场景的存在是没有意义的 - 作用
a:跳出一次循环,执行下一步操作
示例
for(int x=1; x<=10; x++) {
if(x%3==0) {
//在此处填写代码
continue
}
System.out.println(“Java基础班”);
}
//控制台输出7次:“Java基础班“
- return 就是退出一个方法,下面讲。
三.方法(函数)
方法:方法就是完成特定功能的代码块。在很多语言中都有函数的定义,但是在咱们JAVA语言中,我们将其称之为方法。
方法介绍
- 格式:
修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2 ....){
方法体;
return 返回值;
}
(1): 修饰符 比较多,后面会详细介绍。目前使用 public static
(2): 返回值类型 用于限定返回值的数据类型
(3): 方法名 就是一个名称,它的存在是为了方便我们调用方法
(4): 参数类型 限定调用方法时传入参数的数据类型
(5): 参数名 是一个变量,接收调用方法时传入的参数
这个参数其实有一个专业的名词,被称之为形式参数,它的作用是用来接收实际参数的.
(6): 方法体 完成功能的代码
(7): return 结束方法以及返回方法指定类型的值
(8): 返回值 就是功能的结果,由return带回,带回给调用者
- 注意事项
A: 方法不调用不执行
B: 方法与方法是平级关系,不能嵌套定义
C: 方法定义的时候参数之间用逗号隔开
D: 方法调用的时候不用在传递数据类型
E: 如果方法有明确的返回值,一定要由return带回一个值
指定返回值类型就必须有返回值,如果不指定用void可以没有返回值
示例:没有返回值的
import java.util.Scanner;
class MyDemo6{
public static void main(String[] args) {
//以后你在定义方法时,要考虑
//1.这个方法要不要设计参数,设计几个参数,参数类型是什么
//2.这个方法要不要返回值,返回值的类型是什么类型。
//3.给方法起个名字,最好见名字知道意思,方法名一般小写,多个单词,第一个单词首字母小写后一个单词首字母大写
//A:案例演示: 需求:根据键盘录入的数据输出对应的乘法表
//要1个参数 int
//返回值 不要
Scanner sc=new Scanner(System.in);
System.out.println("请输入行数");
int num=sc.nextInt();
showTable(num);
}
public static void showTable(int n){
for(int i=1;i<=n;i++){
for(int j=1;j<=i;j++){
System.out.print(j+"x"+i+"="+j*i+"\t");
}
System.out.println();
}
}
}
示例:有返回值的(返回值类型为布尔类型)
class MyDemo5{
public static void main(String[] args) {
boolean b=isEquals(5,5);
if(b){
System.out.println("相等");
}else{
System.out.println("不相等");
}
}
public static boolean isEquals(double a,double b){
//boolean f=a==b?true:false;
//boolean f=a==b;
return a==b;
}
}
函数重载
在同一个类中,允许存在一个以上的同名方法,只要它们的参数列表不同,与返回值无关。
参数列表不同:
A:参数个数不同
B:参数类型不同
示例:
class MyDemo7{
public static void main(String[] args) {
//求两个数之和,
//求三个数之和
//求四个数之和
long sum1=add(1,2);
System.out.println("和是:"+sum1);
int sum2=add(1,2,3);
System.out.println("和是:"+sum2);
int sum3=add(1,2,3,4);
System.out.println("和是:"+sum3);
//方法重载:允许一个类中可以定义多个同名方法,只要他们的参数个数,或参数类型不同即可。
//不拿返回值类型来区分,只会根据参数个数 或参数类型来区分。
}
public static int add(int a,int b){
System.out.println("两个int类型的add方法调用了");
return a+b;
}
/*
错误的重载演示,不拿返回值类型来区分
public static double add(int a,int b){
return a+b;
}
*/
public static long add(int a,long b){
System.out.println("一个int类型一个long类型的add方法调用了");
return a+b;
}
public static int add(int a,int b,int c){
return a+b+c;
}
public static int add(int a,int b,int c,int d){
return a+b+c+d;
}
}
方法重载:允许一个类中可以定义多个同名方法,只要他们的参数个数,或参数类型不同即可
不拿返回值类型来区分,只会根据参数个数 或参数类型来区分。
总结
循环语句和方法函数是非常重要的概念,要注意细节,打好基础。