循环嵌套与简单调用
一,循环嵌套
1.循环嵌套
for(条件初始化;条件判断;条件变化){
重复执行的代码;
for(条件初始化;条件判断;条件变化){
重复执行的代码;
}
重复执行的代码;
} 特点: 外层循环执行一次,内层小循环执行一轮(从开始到结束)
//外层循环变量i->行 内层循环的变量j->列
//行变化一次,列变化一轮
//先确定行,然后再确定列
public static void starGet() { //打印5*8的星星
for (int i = 1; i <= 5; i++) {//i控制行
for (int j = 1; j <= 8; j++) {//控制列
System.out.print("* ");//不换行 连续打印
}
System.out.println();//内循环结束 换行打印
}
public static void jjGet(){ //打印九九乘法表
for (int i = 1; i <=9 ; i++) {
for (int j = 1; j <=i; j++) {
System.out.print(i+"*"+j+"="+i*j+"\t");//找规律
}
System.out.println();
}
}
public static void sanGet() { //打印9*9的空心直角三角形
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
if (i == 1 || i == 9 || j == 1 || j == i) {
System.out.print("* ");
} else {
System.out.print(" ");
}
}
System.out.println();
}
}
2.break和return在内嵌循环使用
如果想要在多重循环嵌套中,break|Continue指定操作那一层循环–>可以使用带标签的break|continue
在循环开始的位置 定义一个标签–> 标签名:
使用: break|continue 标签名;
public class Class001_Break_Continue {
public static void main(String[] args) {
one:
for(int i=1;i<=5;i++){
//内层循环控制每一行的每一列的打印 j代表列
two:
for(int j=10;j<=20;j++){
if(j==15){
break one;
}
System.out.print(i+"---->"+j+"\t");
}
System.out.println(); //换行
}
}
}
二.方法的调用
方法 : 解决问题的办法
实现功能的代码段作用:
功能代码的封装
提高代码的复用性与安全性特点:
1.方法不调用不执行
2.方法定义在类中方法外,方法不能嵌套定义:
有返回值类型的方法
修饰符 返回值类型 方法名(参数列表){
实现功能的代码段;
return 返回值;
} 修饰符: 访问权限修饰符–>默认public static
返回值类型 : 方法中代码执行完毕之后,是否需要得到一个结果,定义为一个有返回值的方法->方法值的类 型就是结果的数据类型
方法名 : 根据方法名字调用方法
标识符->标识符的命名规则与标识符的命名规范
(参数列表) : 参数列表
可以定义参数,可以不定义参数
思考: 方法的定义的时候,执行中,是否存在未知的,不确定的,可能会改变的数据,如果有定义在方法的 参数列表上
参数列表: 数据类型 参数名1,数据类型 参数名2…
参数->相当于局部变量的声明
{} : 实现功能的代码段
return : 在有返回值类型方法中必须存在return,并且return后面必须存在值
1)提前结束方法 2)带出返回值 ,返回给方法的调用处 没有返回值类型的方法
方法的调用:
执行方法体中的代码
普通调用 : 方法名(参数列表); -->没有办法获取返回值
赋值调用 : 数据类型 变量名 = 方法名(参数列表);
输出调用 : System.out.println(方法名(参数列表));没有返回值类型的方法:
修饰符 void 方法名(参数列表){
方法体语句;
[return];
} void: 标识这是一个没有返回值类型的方法
return : 如果在没有返回值类型的 方法中,可以存在,根据需求存在
提前结束方法的作用,注意,一定不能带出返回值,因为是没有返回值类型的方法没有返回值类型方法的调用:
普通调用-> 执行方法中的代码就好了,不要接收返回值
public class LianXi {
public static void main(String[] args) {
System.out.println(moneyGet(1999)); //输出调用
colorGet("黄色");//普通调用
sumGet(1, 89);//赋值调用
starGet();//普通调用
jjGet();
sanGet();
}
/*
* //普通调用
getPI();
//赋值调用
double pi = getPI();
System.out.println(pi);
//输出调用
System.out.println(getPI());
System.out.println(getSum(3,5));*/
//调用的方法 类中方法外
// 判断金额输出想法
//有返回值 数据类型 int
//有参数金额
//方法名;monGet int
public static int moneyGet(int mon) {
if (mon > 1000) {
System.out.println("吃饭 ");
} else {
System.out.println("吃土");
}
return mon; //结束 带回返回值
}
//没有返回值 用void 占位
//有参数 String
//方法名;clolrGet
public static void colorGet(String col) {
switch (col) {
case "黄色":
System.out.println("向日葵");
break;
case "绿色":
System.out.println("草");
break;
case "红色":
System.out.println("花");
break;
default:
System.out.println("没有收集");
}
}
//需求计算区间之间的和
//没有返回值
//参数 不确定
//方法名;sumGet
public static int sumGet(int min, int max) {
if (min > max) {
System.out.println("第一个参数要小于第二个参数");
}
int num = 0;
for (int i = min; i <= max; i++) {
num += i;
}
System.out.println(num);
return num;
}
//打印5*8的星星
//返回值 没有
//参数没有
//方法名; starGet
public static void starGet() {
for (int i = 1; i <= 5; i++) {
for (int j = 1; j <= 8; j++) {
System.out.print("* ");
}
System.out.println();
}
}
//打印九九乘法表
//没有返回值
//没有参数
//方法名 jjGet
public static void jjGet() {
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
System.out.print(i + "*" + j + "=" + i * j + "\t");
}
System.out.println();
}
}
//用**打印空心的三角形
//没有返回值
//没有参数
//方法名 sanGet
public static void sanGet() {
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
if (i == 1 || i == 9 || j == 1 || j == i) {
System.out.print("* ");
} else {
System.out.print(" ");
}
}
System.out.println();
}
}
}