Java基础——Day04:深入学习循环结构

1 变量


可以改变的数,称为变量。在Java语言中,所有的变量在使用前必须声明。
一般通过“变量类型 变量名 = 变量值 ;”这三部分来描述一个变量。如:int a = 3 ;
变量的使用原则:就近原则,即尽量控制变量的使用范围到最小

1.1 局部变量


位置:定义在方法里或者局部代码块中
注意:必须手动初始化来分配内存.如:int i = 5;或者int i; i = 5;
作用域:也就是方法里或者局部代码块中,方法运行完内存就释放了

1.2 成员变量


位置:定义在类里方法外
注意:不用初始化,也会自动被初始化成默认值
作用域:整个类中,类消失了,变量才会释放

2 方法

被命名的代码块,方法可以含参数可以不含参数,可以提高代码的复用性。







2.1 定义方法的格式

方法的修饰符 返回值类型 方法名(方法的参数列表){方法体}

例:public static void main(String[] args) {}







2.2 方法调用顺序图

顺序执行代码,调用指定方法,执行完毕,返回调用位置
方法的调用顺序

3 嵌套for循环


存在至少2层for循环,根据外层的条件,判断里层能否执行
如果能执行,就把里层代码都循环完毕后,再继续判断是否执行外层循环的下一次循环

嵌套for形式


3.1练习:嵌套for循环入门案例

package cn.tedu.method;
//用于测试嵌套for循环案例
public class For01 {

	public static void main(String[] args) {
	for(int i=1;i<=3;i++) {System.out.println("外"+i);
	for(int i1=1;i1<=5;i1++) {System.out.println("内"+i1);}

	}
}
}



总结1:外循环执行1次,内循环执行多次
 

3.2练习:打印矩形和左直角三角形

package cn.tedu.method;
//打印矩形和左直角三角形
public class For02 {

	public static void main(String[] args) {
		m1();
		System.out.println("----------");
		m2();


	}
	private static void m1() {
		for(int i=1;i<=6;i++) {
			for(int j=1;j<=i;j++) {
				System.out.print("*");
			}

			System.out.println();
	}
}


	private static void m2() {
		for(int i=1;i<=3;i++) {
			for(int i1=1;i1<=5;i1++) {
				System.out.print("*");
			}
			System.out.println();
		}

	}


}

3.3练习:打印99乘法表

package cn.tedu.method;

public class For03 {

	public static void main(String[] args) {
		for(int i=1;i<=9;i++) {
			for(int j=1;j<=i;j++) {
				System.out.print(i+"*"+j+"="+i*j+"\t");//i*j=i*j
			}
			System.out.println();
		}

	}

}

4 break与continue


break: 直接结束当前循环,跳出循环体,简单粗暴

break以后的循环体中的语句不会继续执行,循环体外的会执行
注意如果是嵌套for循环,在内层循环遇到了break,只会跳出当前这一层内循环哦

continue: 跳出本轮循环,继续下一轮循环

continue后本轮循环体中的语句不会继续执行,但是会继续执行下轮循环,循环体外的也会执行

4.1练习

package cn.tedu.method;

import java.util.Scanner;

/**本类用于测试break和continue
 * 需求:猜数字88*/
public class BreakAndContiniue04 {

	public static void main(String[] args) {
		for(int i= 1;i<=100;i++) {
			System.out.println("输入要猜的数字");
			int input = new Scanner(System.in).nextInt();
			if(input != 88) {System.out.println("错误");
			continue;
			}
			if(input == 88) {System.out.println("猜对了");
			break;
			}
		}
	}

}

5 循环结构2 : while循环

形式(先判断,再执行)

while循环

5.1练习:猜数字

package cn.tedu.method;

import java.util.Random;
import java.util.Scanner;

//本类用于测试while循环结构
//需求:生成一个随机数,于用户数字作比较,直到猜对
public class While05 {

	public static void main(String[] args) {
		int random = createnum();
		
		guessnum(random);
	}

	
	public static void guessnum(int random) {
		while(true) {
			System.out.println("请输入你要猜的数字");
			int input = new Scanner(System.in).nextInt();
			
			if (input > random) {
				System.out.println("大");
			}else if(input<random) {
				System.out.println("小");
				
			}else if(input==random) {
				System.out.println("对!");
			break;
			}
		}
		
		
	}


	//本方法用于生成随机数
	private static int createnum() {
		int random = new Random().nextInt(100);
		
		return random;
	}

}

 6.循环结构三 : do-while结构



 形式(先执行,再判断,循环体代码保证最少执行一次)

在这里插入图片描述

6.1练习

package cn.tedu.method;
//do-while循环,至少执行一次,若满足while条件,再次执行。若不满足则停止
import java.util.Random;

public class A06 {

	public static void main(String[] args) {
		int n;
		int count=0;
		do {System.out.println("循环");
		
		n = new Random().nextInt(1000);
		
		System.out.println(n);
		count++;
		
		}while(n>100);
		System.out.println("共执行"+count+"次");
	}

}

总结1://do-while循环,至少执行一次,若满足while条件,再次执行。若不满足则停止

 7.总结

7.1三种循环的区别

  1. for:知道循环次数
  2. while/do while:当循环次数不确定时
  3. while:先判断,不符合规则,不执行代码
  4. do while:代码最少被执行一次,再去判断,符合规则,再次执行代码
  5. 循环之间都可以互相替代,但是一般最好选择合适的循环结构来完成代码哦~

7.2练习:打印右直角三角形

package cn.tedu.method;
//打印右直角三角形
public class A07 {
	public static void main(String[] args) {
	for(int i=1;i<=5;i++){//5行
		for(int x=5;x>i;x--){//打印空格
			System.out.print(" ");
		}
		for(int j=1;j<=i;j++){//打印星号
			System.out.print("*");
		}
		System.out.println();
	}
}
}

7.3练习:打印全三角形

package cn.tedu.method;
//打印全三角形
public class A08 {
	public static void main(String[] args) {
		for(int i=1;i<=6;i++){
			//打印空格的倒三角
			for(int j=6;j>i;j--){
				System.out.print(" ");
			}

			//打印*号的正三角
			for(int k=1;k<=i*2-1;k++){
				System.out.print("*");
			}

			System.out.println();
		}
	}
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值