黑马程序员技术交流社区
标题: 基础班笔记 [打印本页]
作者: Jennifer 时间: 2014-12-18 00:33
标题: 基础班笔记
1:循环(掌握)
(1)如果我们发现有很多重复的内容的时候,就该考虑使用循环改 进代码。
让我们代码看起来简洁了。
(2)循环的组成
A:循环体,就是要做的事情。
B:初始化条件。一般定义的是一个初始变量
C:判断条件。用于控制循环的结束。
D:控制条件。用于控制变量的变化。一般都是一个++/--操作。
(3)循环的分类:
A:for
for(初始化条件;判断条件;控制条件)
{
循环体;
}
执行流程:
a:先执行初始化条件;
b:执行判断条件
c:根据判断条件的返回值:
true:执行循环体。
false:就结束循环。
d:最后执行控制条件。返回到b继续。
B:while
初始化条件;
while(判断条件)
{
循环体;
控制条件;
}
执行流程:
a:先执行初始化条件;
b:执行判断条件
c:根据判断条件的返回值:
true:执行循环体。
false:就结束循环。
d:最后执行控制条件。返回到b继续。
C:do...while(了解)
初始化条件;
do{
循环体;
控制条件;
}while(判断条件);
执行流程:
a:先执行初始化条件;
b:执行循环体和控制条件;
c:执行判断条件
d:根据返回值
true:返回b。
false:就结束循环。
注意:
a:一般使用for循环或者while循环。而且这两种循环是 可以等价转换的。
b:do...while循环至少执行一次循环体。
(4)案例:(掌握)
A:请在控制台输出5次"我爱Java"
B:请在控制台输出1-10的数据。
C:求1-10的和,改进位求1-100的和。
D:求1-100之间偶数的和。
E:求5的阶乘。
/*
需求:求5的阶乘
思路:1. 5的阶乘即5*4*3*2*1
2.通过观察发现跟1+100有异曲同工之处,即可以通过 for循环来满足
*/
class Demo2
{
public static void main(String[] args)
{
int x=1;
for (int i = 1; i <=5;i++ )
{
x*=i;
}
System.out.println(x);
}
}
F:水仙花。
/*
需求:水仙花。
所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:
153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
思路 :1. 所谓"水仙花数"是指一个三位数,从这我们可以看出水仙花数是一个三位数,因此通过for循环来取得三位数的数据
2.水仙花各位数字立方和等于该数据本身,必须先取的水仙花数各位上的数字,该怎么取数字呢?
3.通过%与/取得各位上的数字
*/class FlowerDemo
{
public static void main(String[] args)
{
for (int i=100; i<=999 ;i++ )
{
//定义个位
int a = i % 10;
//定义十位
int b = i / 10 % 10;
//定义百位
int c = i /100 ;
// 判断水仙花各位数字立方和是否等于该数据本身
if (a * a * a + b * b * b + c * c * c == i )
{
System.out.println ( i ) ;
}
}
}
}
G:统计叠多少次,能叠成珠穆朗玛峰的高度。
/*
需求:统计叠多少次,能叠成珠穆朗玛峰的高度。
思路:1.珠穆朗玛峰高度为884800cm,纸张的厚度为1cm,
2.折叠多少次,是一个重复的动作,对重复的次数又不明确,用while循环
3.折叠的次数就是*2,即2的几次幂
*/
class Demo1
{
public static void main(String[] args)
{
int i = 1 ; //纸张厚度初始值为1
int count = 0;//折叠次数
while(i<=884800)
{
i = i << 1;//折叠后的厚度 i = i* 2 ;
count ++;
}
System.out.println(count );
}
}
(5)循环嵌套:(理解)
A:也就是循环语句的循环体是一个循环语句。
B:通过输出
****
****
****
我们不断的改进。发现了一个问题:
外循环控制行数,内循环控制列数。
(6)案例:(理解)
A:正三角形
内循环的判断条件:y<=x
for(int x=0; x<5; x++)
{
for(int y=0; y<=x; y++)
{
System.out.print("*");
}
System.out.println();
}
B:倒三角形
内循环的初始化条件:y=x
for(int x=0; x<5; x++)
{
for(int y=x; y<5; y++)
{
System.out.print("*");
}
System.out.println();
}
C:九九乘法表(理解)
2:break和continue(掌握)
(1)有些时候,我们需要对循环进行一些控制终止,这个时候,就出现了两个关键字:
break和continue
(2)特点:
A:它们都必须在循环中(break还可以在switch中。)。
一般在循环的判断中。
B:如果单独使用break和continue,后面是不能有语句的。
(3)区别:
A:break 结束当前循环。
B:continue 结束本次循环,进入下一次循环。
(4)如何退出嵌套循环:(了解)
用带标签的循环。
格式:
标签名:for(){
for(){
if()
{
break 标签名;
}
}
}
3:应用场景(理解)
(1)变量:发现有一个数据是变化的时候,就要用变量。
(2)if语句:如果是一个范围的判断,boolean类型的表达式的判断,几个数据的判断。
(3)switch语句:几个数据的判断。一般这种情况,有限选择switch。
(4)for语句:如果次数或者范围特别明确。(水仙花)
(5)while语句:如果次数或者范围不明确。(珠穆朗玛峰)
作者: 马曦 时间: 2015-1-9 23:39
早就应该进来看看。棒。
作者: djbcool 时间: 2015-1-9 23:51
看得出楼主的笔记很认真
作者: qq306149769 时间: 2015-1-10 00:19
估计你是基础班的,我们也许是同学!哈哈
作者: FINE 时间: 2015-1-10 00:28
楼主总结的好详细,我都没有这样的耐心。
作者: pupilguan 时间: 2015-1-10 00:31
前排占座,学习了,
作者: 只会金克斯 时间: 2015-1-10 22:18
应该早点发。。。。。。。
作者: Seejun 时间: 2015-1-10 23:05
赞一下,感谢分享
作者: Seejun 时间: 2015-1-10 23:06
赞一下,感谢分享
作者: 天术师 时间: 2015-1-11 21:39
总结的很细致 想起了高中时代
作者: phil 时间: 2015-1-11 22:02
笔记写的很详细,学习了。。
作者: 探寻者 时间: 2015-1-11 23:42
如此详细的笔记,把循环要用的都用了,赞一个
作者: 路尽鹭飞 时间: 2015-1-11 23:51
总结的好仔细,是基础班的同学吧
作者: 以利亚 时间: 2015-1-12 09:24
感谢楼主的分享,笔记做的相当不错了,学习了!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |