Java学习笔记04(if、for、while)

本文详细介绍了Java中的控制流程语句,包括if条件判断、if...else...、if...else if...else多条件选择,以及while、for循环的使用。讲解了三元运算符在条件判断中的应用,还探讨了do...while循环、无限循环、嵌套循环和break、continue的控制流程。最后通过猜数字游戏的实例来巩固这些概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

if

    if(比较表达式) {
        语句体;
    }
  • 先计算比较表达式的值,看其返回值是true还是false。
    • 如果是true,就执行语句体;
    • 如果是false,就不执行语句体;
public class IfDemo{
    public static void main(String[] args){
        int i = 5;
        //对变量i进行if判断
        //如果条件是真,执行大括号内容
        //如果条件是假,都不执行,跳出括号
        if(i == 5){
            System.out.println("if中的条件是true")
            i++;
        }
        System.out.println(i);
    }
}

if…else…语句

    if(比较表达式) {
        语句体1;
    }else{
        语句体2
    }
  • 首先计算比较表达式的值,看其返回值是true还是false。
    • 如果是true,就执行语句体1;
    • 如果是false,就执行语句体2;
public class IfElseDemo{
    public static void main(String[] args){
        int i = 17;
        //判断变量是奇偶数,看余数
        if(i%2 == 0){
            System.out.println(i+"是偶数");
        }else{
            System.out.println(i+"是奇数");
        }
    }
}

if…else if…else多条件

    if(比较表达式1) {
        语句体1;
    }else if(比较表达式2) {
        语句体2;
    }else if(比较表达式3) {
        语句体3;
    }
    ...
    else {
        语句体n+1;
    }
  • 首先计算比较表达式1看其返回值是true还是false,
    • 如果是true,就执行语句体1,if语句结束。
    • 如果是false,接着计算比较表达式2看其返回值是true还是false,
      • 如果是true,就执行语句体2,if语句结束。
      • 如果是false,接着计算比较表达式3看其返回值是true还是false,…
  • 如果都是false,就执行语句体n+1。
  • 只要有一个if的条件是真,其他的代码就都不会执行了。
public class IfElesIfDemo{
    public static void main(String[] args){
        int grade = 75;
        if(grade > 80){
            System.out.println(grade+"成绩是优");
        }else if(grade > 70){
            System.out.println(grade+"成绩是良");
        }else if(grade > 60){
            System.out.println(grade+"成绩是中");
        }else{
            System.out.println(grade+"成绩是差");
        }
    }
}

if语句和三元运算符

  • 判断条件多的话用if else,两个条的话件用三元
  • 三元必须有结果,if else可以没有结果
public class IfElseDemo_1{
    public static void main(String[] args){
        int i = 5;
        int j = 6;
        //使用if语句,判断出最大值
        if(i>j){
            System.out.println(i+"是最大值")}else{
            System.out.println(j+"是最大值");
        }
        
        //使用三元运算实现
        int k = i>j ? i : j;
        System.out.println(k+"是最大值");
    }
}

while循环

  1. 当条件是true,就执行循环体
  2. 执行完循环体后,程序再次执行while中的条件,如果条件还是true,继续执行循环体
  3. 直到条件是false的时候,循环就结束
public class WhileDemo{
    public static void main(String[] args){
        int i = 1;
        while(i<5){
            System.out.println(i);
            i++;
        }
    }
}

for循环

    for(初始化变量 ; 条件 ; 增量){
        循环体;
    }
  1. 变量定义,整个循环中终身定义一次。
  2. 条件是true的话,执行3。条件是false的话,执行5。
  3. 执行循环体。
  4. 执行增量,然后走2重新判断条件。
  5. 退出循环。
public class ForDemo{
    public static void main(String[] args){
        //输出0-10
        for(int i = 0; i < 11; i++){
            System.out.println(i);
            i++;
        }
    }
}

do…while

  • 无条件先执行一次
public class DoWhileDemo{
    public static void main(String[] args){
        int i = 0;
        do{
            System.out.println(i);
            i++;
        }while(i<5);
        //即使这里 ↑ 的条件是假,上面的循环体也会执行一次
    }
}

无限循环(死循环)

public class WhileForDemo{
    public static void main(String[] args){
        //while形式死循环
        while(true){
            
        }
        //for形式死循环
        for( ; ; ){
            
        }
    }
}

嵌套循环

  • 总的循环次数 = 内循环次数 * 外循环的次数
public class ForForDemo{
    public static void main(String[] args){
        for(int i = 0; i < 2; i++){
            for(int j = 0; j < 3: j++){
                System.out.println(j);
            }
            System.out.println(i);
        }
    }
}
  • 上面这个程序的输出是
0120
0121
public class ForForDemo{
    public static void main(String[] args){
        for(int i = 0; i < 9; i++){
            for(int j = 0; j < i: j++){
                System.out.println(j);
            }
            System.out.println(i);
        }
    }
}
  • 上面这个程序的输出是
*
**
***
****
*****
******
*******
********
*********

break

  • 结束整个循环,写在哪个循环就结束哪个循环
  • 只能跳出最近的代码块,不能跨越多级代码块
  • 可以把循环命名,然后 break 名,就可以结束指定循环
  • 在loop/switch选择或者循环过程中,我们总是满足布尔表达条件才能执行对应的代码,然而在这些逻辑过程中,可以使用一些关键字直接跳出正在执行的代码,去执行后边或者指定位置的代码,这些关键字一旦出现就可以跳转语句执行顺序。
public class BreakDemo{
    public static void main(String[] args){
        int i = 1;
        while(true){
            if(i == 3){
                break;
            }else{
                System.out.print(i);
            }
            i++;
        }
    }
}
  • 这个程序的输出是
1
2
  • 为什么使用循环标号
    • 当在双层循环或者循环内有switch选择语句时,我们发现,使用break或者continue所作用的对象均是内层语句,无法直接跳出外层循环,这时就需要使用标号语句跳转了.
  • 在外层循环外的某行前边,使用后边跟有冒号”:”的标识符,即定义完毕。使用时当在内层循环使用break或continue时后边紧跟之前定义的标号即可。
  • 当外层循环外定义了标号
    • 内层使用break,终止内外双层循环。
    • 内层使用continue,终止内层循环,继续外层循环。

continue

  • continue下面的语句都不执行了,终止本次循环,开始下一次循环
public class ContinueDemo{
    public static void main(String[] args){
        for(int i = 0; i < 10; i++){
            if(i%2==0){
                continue;
            }
            System.out.println(i);
        }
    }
}
  • 这个程序的输出是
1
3
5
7
9

实例:猜数字游戏

//猜数字小游戏
import java.util.Random;
import java.util.Scanner;
public class GuessNumber{
	public static void main(String[] args){
		Random ran = new Random();
		int ranNumber = ran.nextInt(100)+1;
		
		Scanner sc = new Scanner(System.in);
		for(int i=1; i<=5; i++){
			System.out.println();
			System.out.println("请输入1-100的数字:");
			int guessNumber = sc.nextInt();
			if(guessNumber>ranNumber){
				System.out.println("猜大了");
			}else if(guessNumber<ranNumber){
				System.out.println("猜小了");
			}else{
				System.out.println("猜对了");
				break;
			}
			if(i==5){
				System.out.println("次数耗尽");
				break;
			}
			System.out.println("您还有"+(5-i)+"次机会");
		}
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值