13. 循环结构-for循环
【摘要】 Java系列第十三课
1、for循环语法结构—很重要!!!
2、for循环的执行原理
3、for循环需要注意的点
1)初始化表达式、布尔表达式、更新表达式都不是必须的。【但是两个分号是必须的】
2)初始化表达式最先执行,并且在整个for循环当中只执行一次。
3)布尔表达式必须是true/false,不能是其它值。
4)for循环执行过程:
4、相关例题说明
1)打印Hello World十遍。
public class Demo6 {
public static void main(String[] args) {
for (int i = 1; i <= 10; i++){
System.out.println("Hello World");
}
}
}
结果如下:
2)了解一下死循环。
for循环中,初始化表达式、布尔表达式、更新表达式都不是必须的,但是,这两个分号“;”却不能省略。
public class Demo6 {
public static void main(String[] args) {
for (; ; ){
System.out.println("Hello World");
}
}
}
3)注意for循环中i从0开始取,和i从1开始取的不同。
public class Demo6 {
public static void main(String[] args) {
int count1 = 0;
int count2 = 0;
for (int i = 0; i <= 10; i++){
count1++;
}
System.out.println("i从0开始共循环了" + count1 + "次");
System.out.println("----------*_____*------------");
for (int i = 1; i <= 10; i++){
count2++;
}
System.out.println("i从1开始共循环了" + count2 + "次");
}
}
结果是:
4)关于for循环中的i变量的“作用域”问题。
public class Demo6 {
public static void main(String[] args) {
for (int i = 1; i <= 10; i++){
System.out.println("Love");
}
System.out.println(i);
}
}
结果:
注:for循环中的i只属于for循环内部,属于局部变量。当for循环结束后,该变量就释放了,也就不存在了。因此,代码在编译阶段,会出现“找不到符号”这个编译错误,因为在main主方法中,并没有定义这个变量。
假如既想i在main主方法中使用,又在for循环中使用,可以采取以下方式:
public class Demo6 {
public static void main(String[] args) {
int i;
for (i=1; i <= 10; i++){
System.out.println("Love");
}
System.out.println("i最终的值为i:" + i);
}
}
结果为:
5)输出1-10之间的奇数 和 偶数。
奇数:
public class Demo6 {
public static void main(String[] args) {
for (int i = 1; i <= 10; i+=2){
System.out.println(i);
}
}
}
结果如下:
偶数:
public class Demo6 {
public static void main(String[] args) {
for (int i = 2; i <= 10; i+=2){
System.out.println(i);
}
}
}
结果如下:
6)倒着打印1-10之间的数字。
public class Demo6 {
public static void main(String[] args) {
for (int i = 10; i > 0; i--){
System.out.println(i);
}
}
}
结果如下:
7)更新表达式i++放在循环体中,有什么区别?
i++放在循环体最后
public class Demo6 {
public static void main(String[] args) {
for (int i = 1; i <= 10; ){
System.out.println(i);
// i++放在循环体最后的情况,和i++放在()中是一样的效果。
// 了解上面for循环的执行原理,就很清楚啦。
i++
}
}
}
结果:
i++放在循环体最前
public class Demo6 {
public static void main(String[] args) {
for (int i = 1; i <= 10; ){
i++;
System.out.println(i);
}
}
}
结果是:
8)for循环和if嵌套的使用。
以打印1-10之间的偶数为例:
当仅使用for循环
public class Demo6 {
public static void main(String[] args) {
for (int i = 2; i <= 10; i+=2){
System.out.println(i);
}
}
}
结果如下:
当时用for和if
public class Demo6 {
public static void main(String[] args) {
for (int i = 2; i <= 10; i++){
if (i % 2 == 0){
System.out.println(i);
}
}
}
}
结果如下:
注:对于上述情况,推荐使用第一种方式,for循环代码少,效率高!!!!
8)for循环累加问题。
原理图:
代码如下:
public class Demo6 {
public static void main(String[] args) {
int sum = 0; // 定义一个容器,最开始容器为空
for (int i = 1; i <= 10; i++){
sum += i; // 循环一次,相当于往容器中,加一次苹果
}
System.out.println(sum);
}
}
结果如下:
9)for循环嵌套for循环使用,双层循环。
原理图:
打印一个九九乘法表:
public class Demo7 {
public static void main(String[] args) {
for (int i = 1; i < 10; i++){
for (int j = 1; j <=i; j++){
System.out.print(i + "*" + j + "=" + i * j + " ");
}
System.out.println(" ");
}
System.out.println("");
}
}
结果如下:
【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)