一、嵌套循环
1.for循环嵌套,外层循环控制行数,内层循环控制列数
案例一:输出一个4行5列的星星( *)图案。
package org.westos.demo;
public class MyDemo {
public static void main(String[] args) {
//外层循环控制行数,内层循环控制列数
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 5; j++) {
//打印不换行
System.out.print("*");
}
//只是换行
System.out.println();
}
}
}
案例二:请输出下列的形状
*
**
***
****
*****
package org.westos;
public class MyDemo2 {
public static void main(String[] args) {
for (int i = 1; i <= 4; i++) {
for (int j = 1; j <= i; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
案例三:输出九九乘法表
package org.westos.demo2;
public class MyDemo {
public static void main(String[] args) {
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
//\t 是一个转义字符 空一个table位置
System.out.print(j+"*"+i+"="+j*i+"\t");
}
System.out.println();
// \n 是一个转意字符,换行符
System.out.print("\n");
}
}
}
二、循环关键字
1、break:
break的使用场景
(1):在选择结构switch语句中
(2):在循环语句中
注意:离开使用场景的存在是没有意义的
作用
退出循环
案例一:原计划循环十次,现在需要到第五次时就结束循环
package org.westos.demo2;
public class MyDemo3 {
public static void main(String[] args) {
for (int i = 1; i <= 10; i++) {
System.out.println(i);
if (i==5){
break;
}
}
int j=1;
while (true){
System.out.println("哈哈");
if (j>10){
break;
}
j++;
}
System.out.println("下面的代码");
}
}
结果展示:
1
2
3
4
5
哈哈
哈哈
哈哈
哈哈
哈哈
哈哈
哈哈
哈哈
哈哈
哈哈
哈哈
下面的代码
2.continue
continue的使用场景
(1):在循环语句中
(2):离开使用场景的存在是没有意义的
作用
跳出一次循环,执行下一步操作
案例:
for(int x=1; x<=10; x++) {
if(x%3==0) {
//在此处填写代码
}
System.out.println(“Java基础班”);
}
我想在控制台输出2次:“Java基础班“
我想在控制台输出7次:“Java基础班“
我想在控制台输出13次:“Java基础班“
答案:
1.break, x=3时直接跳出for循环
2.continue, x=3,6,9时跳出一次循环,不打印
3.System.out.println(“Java基础班”);x=3,6,9时多打印三次
3 return
return就是返回,退出一个方法
总结:
1.return: 结束当前方法
2.break: 结束单层循环
3.continue: 结束当前循环,执行下一次循环
三、方法
1.学习的第一个方法:
public static void main(String[] args){}
2.方法的定义:
方法就是完成特定功能的代码块
3.方法的格式:
修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2 ....){
方法体;
return 返回值;
}
返回值类型: 明确功能结果的数据类型
参数列表: 你要传递几个参数,以及每一个参数的数据类型
4.注意事项:
方法不调用不执行
方法与方法是平级关系,不能嵌套定义
方法定义的时候参数之间用逗号隔开
方法调用的时候不用在传递数据类型
如果方法有明确的返回值,一定要由return带回一个值
return用来结束方法,void类型不用return
如果我们在调用一个方法时,这个方法需要参数,那我们就需要传入相应的参数
参数类型和参数个数,跟方法需要的参数要对应。
我们把调用方法时,传入的参数,叫做实际参数,简称实参
案例一:求两个数据之和
package org.westos.demo3;
public class MyDemo {
public static void main(String[] args) {
add();
}
public static void add(){
int a=20;
int b=30;
int sum=a+b;
System.out.println("sum="+sum);
}
}
案例二:使用键盘录入
1.比较两个值是否相等
2.获取两个数中的较大值
package org.westos.demo3;
import java.util.Scanner;
public class MyDemo2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入第一个数");
int one=sc.nextInt();
System.out.println("请输入第二个数");
int two=sc.nextInt();
boolean flag=eaual(one,two);
System.out.println(flag);
int max = getMax(one, two);
System.out.println(max);
}
public static int getMax(int a,int b){
int max=a>b?a:b;
return max;
}
public static boolean equal(int a,int b){
return a==b;
}
}
案例三:根据键盘录入的行数和列数,在控制台输出星形
package org.westos.demo3;
import java.util.Scanner;
public class MyDemo3 {
public static void main(String[] args) {
/*
* 根据键盘录入的行数和列数,在控制台输出星形
* */
Scanner sc = new Scanner(System.in);
System.out.println("请输入行数");
int i = sc.nextInt();
System.out.println("请输入列数");
int j=sc.nextInt();
send(i,j);
}
public static void send(int a,int b){
for (int hang = 1; hang <= a; hang++) {
for (int lie = 1; lie <= b; lie++) {
System.out.print("*");
}
System.out.println();
}
}
}
案例四:根据键盘录入的行数和列数,在控制台输出星形
package org.westos.demo3;
import java.util.Scanner;
public class MyDemo3 {
public static void main(String[] args) {
/*
* 根据键盘录入的行数和列数,在控制台输出星形
* */
Scanner sc = new Scanner(System.in);
System.out.println("请输入行数");
int i = sc.nextInt();
System.out.println("请输入列数");
int j=sc.nextInt();
send(i,j);
}
public static void send(int a,int b){
for (int hang = 1; hang <= a; hang++) {
for (int lie = 1; lie <= b; lie++) {
System.out.print("*");
}
System.out.println();
}
}
}
案例五:根据键盘输入的数据输出相应的乘法表
package org.westos.demo3;
import java.util.Scanner;
public class MyDemo4 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入乘法表的阶数");
int jie = sc.nextInt();
print(jie);
}
public static void print(int i){
for (int a = 1; a <= i; a++) {
for (int b=1;b<=a;b++){
System.out.print(b+"*"+a+"="+b*a+"\t");
}
System.out.println("\n");
}
}
}
5.方法的重载:
方法重载:在同一个类中,方法名称相同,参数列表不同,
把这种情况称为方法的重载
注意事项:
重载与权限修饰符无关,与返回值类型也无关,
只与参数列表有关。
案例:
求:
2个整数
3个整数
4个整数 的和。
package org.westos.demo3;
import java.util.Scanner;
public class MyDemo5 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入第一个数");
int one=sc.nextInt();
System.out.println("请输入第二个数");
int two=sc.nextInt();
System.out.println("请输入第三个数");
int three=sc.nextInt();
System.out.println("请输入第四个数");
int four=sc.nextInt();
int a = sum1(one, two);
int b = sum2(one, two, three);
int c = sum3(one, two, three, four);
System.out.println(a);
System.out.println(b);
System.out.println(c);
}
public static int sum1(int a,int b){
return a+b;
}
public static int sum2(int a,int b,int c){
return a+b+c;
}
public static int sum3(int a,int b,int c,int d){
return a+b+c+d;
}
}
重载和重写的区别:
1.重载是指在同一个类中,方法名相同,参数列表不同,与
返回值类型无关,与权限修饰符无关
2.重写是指子类对父类进行覆盖重写,方法名相同,参数列表也相同,只是方法的实现体不同。