循环语句
for语句
-
格式:
for(初始化表达式语句;判断条件语句;控制条件语句) {
循环体语句;
} -
流程:
a:执行初始化表达式语句
b:执行判断条件语句,看其返回值是true还是false
如果是true,就继续执行
如果是false,就结束循环
c:执行循环体语句;
d:执行控制条件语句
e:回到b继续。 -
注意事项:初始化语句只执行一次。
例1:求1-100的奇数和偶数和
public class Demo3 {
public static void main(String[] args) {
int sum=0;int sum2=0;
for (int i = 1; i <=100; i++) {
if (i%2==0){
sum+=i;
}else
sum2+=i;
}
System.out.println(sum);
System.out.println(sum2);
}
}
例2:输出所有的水仙花数,记录水仙花个数
public class Demo4 {
public static void main(String[] args) {
int num=0;
for (int i = 100; i < 1000; i++) {
int x=i%10;
int y=i/10%10;
int z=i/100%10;
int flower=x*x*x+y*y*y+z*z*z;
if (i==flower){
System.out.println(i);
num++;
}
}
System.out.println("水仙花数:"+num);
}
}
while语句
- 格式:
初始化条件语句;
while(判断条件语句) {
循环体语句;
控制条件语句;
} - 流程:
a:执行初始化条件语句;
b:执行循环体语句;
c:执行控制条件语句;
d:执行判断条件语句,看其返回值是true还是false
如果是true,就继续执行
如果是false,就结束循环
e:回到b继续。
例1:用while语句求1-100数的偶数和,奇数和
public class Demo5 {
public static void main(String[] args) {
int i=1;int sum=0;
while (i<=100){
if (i%2==0){
sum+=i;
}
i++;
}
System.out.println(sum);
}
}
例2:用while语句求水仙花数并记录水仙花个数
public class Demo6 {
public static void main(String[] args) {
int i=100;int num=0;
while (i<1000){
int x=i%10;
int y=i/10%10;
int z=i/100%10;
int flower=x*x*x+y*y*y+z*z*z;
if (i==flower){
System.out.println(i);
num++;
}
i++;
}
System.out.println("水仙花个数:"+num);
}
}
do……while语句
- 格式:
初始化条件语句;
do {
循环体语句;
控制条件语句;
}while(判断条件语句); - 流程:
a:执行初始化条件语句;
b:执行循环体语句;
c:执行控制条件语句;
d:执行判断条件语句,看其返回值是true还是false
如果是true,就继续执行
如果是false,就结束循环
e:回到b继续。
例1:用do……while语句求1-100的偶数和,奇数和
public class Demo7 {
public static void main(String[] args) {
int sum=0;
int sum2=0;
int i=1;
do {
if (i%2==0){
sum+=i;
}else
sum2+=i;
i++;
}
while (i<=100);
System.out.println(sum);
System.out.println(sum2);
}
}
例2:用do……while语句求水仙花数并记录水仙花个数
public class Demo8 {
public static void main(String[] args) {
int i=100;int num=0;
do {
int x=i%10;
int y=i/10%10;
int z=i/100%10;
int flower=x*x*x+y*y*y+z*z*z;
if (i==flower){
System.out.println(i);
num++;
}
i++;
}while (i<1000);
System.out.println("水仙花个数:"+num);
}
}
例3:用循环嵌套表示99乘法表(三角形)
public class Demo9 {
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+"="+(j*i)+"\t");
}
System.out.println();
}
}
}
控制跳转语句
- 控制跳转语句的分类:
break 中断
continue 跳过
return 返回
例1:break用法
public class Demo{
public static void main(String[] args) {
for (int i = 1; i <= 10; i++) {
if (i % 3 == 0) {
break;
}
System.out.println("基础班");
}
}
}
例2:continue用法
public class Demo2 {
public static void main(String[] args) {
for (int i = 1; i <=10; i++) {
if (i%3==0){
continue;
}
System.out.println("基础");
}
}
}
方法(函数)
- 格式:
修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2 …){
方法体;
return 返回值;
} - 格式详细说明:
(1): 修饰符 比较多,后面会详细介绍。目前使用 public static
(2): 返回值类型 用于限定返回值的数据类型
(3): 方法名 就是一个名称,它的存在是为了方便我们调用方法
(4): 参数类型 限定调用方法时传入参数的数据类型
(5): 参数名 是一个变量,接收调用方法时传入的参数
这个参数其实有一个专业的名词,被称之为形式参数,它的作用是用来接收实际参数的.
(6): 方法体 完成功能的代码
(7): return 结束方法以及返回方法指定类型的值
(8): 返回值 就是功能的结果,由return带回,带回给调用者 - 注意事项:
A: 方法不调用不执行
B: 方法与方法是平级关系,不能嵌套定义
C: 方法定义的时候参数之间用逗号隔开
D: 方法调用的时候不用在传递数据类型
E: 如果方法有明确的返回值,一定要由return带回一个值
例1:比较两个数的最大值,并用方法调用
public class fangfaDemo {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入第一个数");
int i1 = sc.nextInt();
System.out.println("请输入第二个数");
int i2 = sc.nextInt();
int max=add(i1,i2);
System.out.println("最大值:"+max);
}
public static int add(int a,int b){
int max=0;
if (a>b){
max=a;
}else
max=b;
return max;
}
}
例2:比较两个数是否相同并用方法调用
public class FangFaDemo2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入第一个数");
int i = sc.nextInt();
System.out.println("请输入第二个数");
int i1 = sc.nextInt();
boolean max=add(i,i1);
System.out.println(max);
}
public static boolean add( int a ,int b){
return a==b;
}
}
例3:根据键盘录入数据输出对应乘法表
public class FangFaDemo3 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入第一个整数");
int n = sc.nextInt();
add(n);
}
public static void add(int n){
for (int i =1; i <=n; i++) {
for (int j =1; j <=i; j++) {
System.out.print(j+"*"+i+"="+(j*i)+"\t");
}
System.out.println();
}
}
}
方法重载
- 定义:在同一个类中,允许存在一个以上的同名方法,只要它们的参数列表不同,与返回值无关。
- 参数列表:
参数个数不同
参数类型不同
例:对多个整数求和
public class FangFaChongZai {
public static void main(String[] args) {
int sum=add(1,8);
int sum1=add(2,4,5);
int sum2=add(2,4,6,2);
System.out.println("结果:"+sum);
System.out.println("结果:"+sum1);
System.out.println("结果:"+sum2);
}
public static int add(int a,int b){
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;
}
}