以下为个人学习笔记和习题整理
课程:零基础学Java语言-浙江大学-翁恺 @ 中国大学MOOC
https://www.icourse163.org/course/ZJU-1001541001
文章目录
笔记
for 循环
for(初始化;条件;单步动作) {
}
- 初始化:可以定义一个新变量并赋值,如
int i = 0
,或者直接赋值循环外已定义的变量i = 0
。 - 条件:维持循环的条件,与while条件相同。常用
i<=n
。 - 单步动作:步进,即每轮循环体执行完之后,必须执行的动作。可以用
,
连接多个动作。常用i++
或i--
。 - 以上每一个表达式都可以省略:
for(; 条件;) == while (条件)
- 可以空循环,但建议加上大括号{}。
for(i=0;i<10;i++);
for(i=0;i<10;i++)
System.out.println(i);
- 循环次数 与 控制变量的值:
for(i=0;i<n;i++)
// 循环次数正好为 n,循环结束后 i 的值是 n
// 初始化 i 为 0或1,循环条件为 i < n 或 i <= n,均影响循环次数及 i 最终的值。
for(int i=0;i<n;i++)
// 可以直接在for语句中定义变量 i
// i 只在循环体中使用,出循环后,i未定义。
- tips:
- 如果有固定次数,用for循环;
- 如果必须要执行一次,用do-while循环;
- 其它情况用while循环。
循环控制 break vs continue
- break : 跳出循环
- continue : 跳过循环这一轮剩下的语句,进入下一轮
嵌套循环
- break和continue 只能对所在的那层循环进行跳出或跳过
- 可以在循环前放一个标号来标示循环,带标号的break和continue对那个循环起作用。
Outer:
for ( int one = 0; one <=amount; ++one )
for ( int five = 0; five <= amount/5; ++five )
for ( int ten = 0; ten <= amount/10; ++ten )
for ( int twenty = 0; twenty <= amount/20; ++twenty )
if ( one+five*5+ten*10+twenty*20 == amount ) {
break Outer;
}
逻辑运算
逻辑类型 boolean
关系运算的结果是一个逻辑值true
或 false
,可以保存在一个对应的逻辑类型变量中。
boolean flag = true;
boolean tooHigh, tooSmall, tooRough;
boolean done = false;
逻辑运算符 ! && ||
对逻辑量进行的运算,只有逻辑量可以参与运算
运算符 | 描述 | 示例 | 结果 |
---|---|---|---|
! | 逻辑非 | !a | 若a是true,则结果为false;如果a是false,则结果为true |
&& | 逻辑与 | a&&b | a和b都为true时,结果才为true;否则就是false |
|| | 逻辑或 | a||b | a和b有一个为true时,结果即为true;两个都是false,结果为false |
运算符优先级总结
优先级 | 运算符 | 结合性 |
---|---|---|
1 | () | 从左到右 |
2 | ! + - ++ - - | 从右到左 |
3 | * / % | 从左到右 |
4 | + - | 从左到右 |
5 | < <= > >= | 从左到右 |
6 | == != | 从左到右 |
7 | && | 从左到右 |
8 | || | 从左到右 |
9 | = += -= *= /= %= | 从右到左 |
逻辑表达式
4 < x < 6
是错误的表达式,因为4 < x
结果是一个逻辑值,逻辑值不能和数值6做关系运算。正确的表达式是x > 4 && x <6
。age > 20 && age < 30
正确index <0 || index > 99
正确!age<20
报错,!(age < 20)
正确
循环的应用
求和
- f ( n