day03循环结构,for嵌套打印三角星,函数(方法),重载,数组概念,内存

本文深入讲解了循环结构(包括while、do-while、for循环)的特点及应用,并详细阐述了数组的概念、定义方式及其在内存中的存储机制。此外,还介绍了break与continue语句的使用方法,以及函数和方法重载的概念。

代表语句:while,do while,for 
while (条件表达式)
{
执行语句;
}


do
{
执行语句;
}
while (条件表达式);
do while的特点是无论条件是否满足,循环体至少
执行一次。


for (1初始化表达式;2循环条件表达式;3循环后的操作表达式 )
{
4执行语句;
}


先执行1初始化表达式,判断是否满足2循环条件,满足就执行
4执行语句,再执行循环后的3操作表达式,再2判断条件。


FOR和do while的区别?
for中的x只在for循环中有效,出了大括号,x就会消失。
因为do while的初始化在外面,所在出了循环依然有效。
这是变量的作用域。for和do while可以互换的。
for语句第二句必须是boolean.
int x = 1;
for (System.out.println("a"); x<3;System.out.println("c"),x++)
{
System.out.println("d");
}//adcdc
循环语句的其他特点:
无限循环的最简单的表现形式:
for (; ; ){}

while(true){}

public static void main(String[] args) 
	{
		int count = 0;
		for (int x= 1;x<=10 ;x++ )
		{
			if (x%7==0)
			{
				count++;
			}
		}
		System.out.println(count);
	}

	for嵌套

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int count = 5;
		for(int x =0;x<5;x++) {	
			for(int y=0;y<count;y++) {
				System.out.print("*");
			}
			System.out.println();
			count--;
		}//第一种方法
		
		
		int count1 = 0;
		for(int x =0;x<5;x++) {	//外循环控制行数
			for(int y=5;y>count1;y--) {//内循环控制列数
				System.out.print("*");
			}
			System.out.println();
			count1++;
		}//第二种方法
		
		int count2 = 5;
		for(int x =0;x<5;x++) {	
			for(int y=6;y>count2;y--) {
				System.out.print("*");
			}
			System.out.println();
			count2--;
		}//第二题

		for(int x =1;x<6;x++) {	
			for(int y=0;y<x;y++) {
				System.out.print("*");
			}
			System.out.println();
		}

		for(int x=1;x<6;x++){
			for (int y = 1; y <=x; y++) {
				System.out.print(y);
			}
			System.out.println();
		}//打印从1到5

		for(int x=1;x<10;x++){
			for (int y = 1; y <=x; y++) {
				System.out.print(y+"*"+x+"="+y*x+"\t");
			}
			System.out.println();
		}//打印99乘法表
	}
break(跳出),continue(继续)
break:用在循环语句中,跳出当前循环,


给循环起名字用标号,只能给循环起名字。w:for(int x=0;x<3;x++);


continue(继续):只作用于循环结构。结束本次循环,继续下次循环。


注意:二个后面不能有其他语句,因为执行不到。只能用于循环中。

for(int x =0;x<5;x++){
			for(int y=4;y>=0;y--) {
				if(x>=y)
					System.out.print("*"+" ");
				else
					System.out.print("-");
			}
			System.out.println();
		}//打印星号三角形,毕老师的是内循环二个for

2.7函数(方法)
函数就是定义在类中的具有特定功能的一段独立小程序。
函数的格式:
修饰符 返回值类型 函数名(参数类型 形参1,参数类型 形参2,...)
{
执行语句;
return 语句;
}
注意:函数中只能调用函数,函数中不能定义函数。。。
没有返回值时使用关键字 void,这时return语句可以不写。
java中最小的功能单元就是函数。


如何定义一个函数?1就是明确返回值类型,2就是明确参数列表
1。函数是一个独立的功能,那么该功能的运算结果是什么先明确。
2.再明确定义该功能的过程中是否需要求知的内容参与运算。


方法的重载(overload)
概念:在同一个类中,允许存在一个以上的同名函数,只要他们的参数个数或
参数类型不同就可。
特点:与返回值无关,只看参数列表。也就是说是否重载只和参数列表有关。
//思考;重载和后面的可变参数。那不是重复了么?????????
//可变参数可以更加简化?


2.8 数组
概念:同一种类型数据的集合,其实数组就是一个容器。
好处:可以自动给数组中的元素从0开始编号,方便操作元素。
定义数组格式:
1 元素类型[] 数组名 = new 元素类型[元素个数或数组长度];
2 元素类型[] 数组名 = new 元素类型[]{元素1,元素2,...}
int[] x = new int[3];注意:x代表数组类型,不是int类型。
java在运行时,在内存中化分了五个空间。
1栈内存,用于存储局部变量,当数据使用完,所占空间自动释放。
2堆内存:数组和对象,通过new建立的实例都存放在堆内存中
每个实体都有内存地址。
实体中的变量都有默认初始化值。
实体不在被使用,会在不确定的时间被垃圾回收器回收。
3方法区,4本地方法区,5寄存器


x = null;不再指向。
jvm的垃圾回收机制。自动回收,不定时。
内存三个特点:1地址值2默认初始化值3垃圾回收机制



### 使用 `for` 循环实现 C++ 7 月日历打印程序 在不使用函数的情况下,可以通过嵌套的 `for` 循环实现一个完整的 7 月份日历输出。假设已知 7 月有 31 天,并且需要根据某一天是期几进行对齐。以下是一个仅通过 `for` 循环实现的完整示例: ```cpp #include <iostream> int main() { // 假设 7 月 1 日是期六(对应数字 6) int startDay = 6; // 期天为 0,期一为 1,依此类推到期六为 6 int daysInMonth = 31; // 打印表头 std::cout << "Sun Mon Tue Wed Thu Fri Sat\n"; // 打印开始前的空格 for (int i = 0; i < startDay; ++i) { std::cout << " "; } // 打印日期 for (int day = 1; day <= daysInMonth; ++day) { std::cout.width(3); // 设置宽度为 3 个字符 std::cout << day << " "; // 每七天换行 if ((startDay + day) % 7 == 0) { std::cout << "\n"; } } std::cout << "\n"; return 0; } ``` #### 程序说明: - **第一层循环**:用于处理起始日期前的空白部分,例如如果 7 月 1 日是期六,则前面不需要任何空格。 - **第二层循环**:遍历从 1 到 31 的所有日期,依次输出每个日期并确保每行显示 7 天后自动换行。 - **格式化输出**:通过 `std::cout.width(3)` 确保每个数字占据固定宽度,使日历排列整齐。 ### 注意事项 - 上述代码中未调用任何额外函数,完全依赖 `for` 循环和基本输入输出流 `iostream` 实现。 - 若需调整起始日期,请修改 `startDay` 变量值,其范围为 0 到 6(分别表示期日到期六)[^2]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值