零基础学Java-基础语法篇day3(分支结构、循环结构)

流程控制语句

顺序结构:
按照代码的顺序依次执行,从左到右,从上到下。

分支结构 (if,switch):

循环结构(for,while,do…while):

分支结构

if语句
if语句

格式1:
if(关系表达式){
语句体;
}
实例:

public class Demo1If {
    public static void main(String[] args){
        int age=17;
        if(age>=18){
            System.out.println("可以上网吧");
        }
    }
}

打印结果:
什么也不打印

注意事项:

  • 如果if语句所控制的语句体,是一条语句,可以省大括号,但是不建议。
  • if语句的小括号后面,不要写分号;
if else语句

格式2:
if(关系表达式){
语句体1;
}else{
语句体2;
}

只执行其中一个语句体
实例: 判断奇偶

public class Demo2If {
    public static void main(String[] args){
        int num=10;
        if(num%2==0)
        {
            System.out.println("偶数");
        }else
        {
            System.out.println("奇数");
        }
    }
}

打印结果:
偶数

if else if 语句

if语句格式3:
if(判断条件1){
语句体1;
}
else if(判断条件2){
语句体2;
}
else
{
语句体n+1;
}
实例:

public class Demo3If {
    public static void main(String[] args)
    {
        int score=60;
        if(score>=90&&score<=100)
        {
            System.out.println("优秀");
        }
        else if (score>=80&&score<=89)
        {
            System.out.println("良好");
        }
        else if (score>=70&&score<=79)
        {
            System.out.println("中等");
        }
        else if (score>=60&&score<=69)
        {
            System.out.println("及格");
        }
        else if(score>=0&&score<=59)
        {
            System.out.println("请努力加油");
        }
        else
        {
            System.out.println("您的程序有误");
        }
    }
}

打印结果:
及格

switch语句

格式:
switch(表达式){
case 值1:
语句体1;
break;
case 值2:
语句体1;
break;
default:
语句体n+1;
break;
}
实例:

public class Demo3If {
    public static void main(String[] args)
    {
        int week=5;
        switch (week)
        {
            case 1:
                System.out.println("星期一");
                break;
            case 2:
                System.out.println("星期二");
                break;
            case 3:
                System.out.println("星期三");
                break;
            case 4:
                System.out.println("星期四");
                break;
            case 5:
                System.out.println("星期五");
                break;
            case 6:
                System.out.println("星期六");
                break;
            case 7:
                System.out.println("星期日");
                break;
            default:
                System.out.println("您的数据有误");
                break;
        }
    }
}

打印结果:
星期五

注意事项:

  • case给出的值不允许重复
  • case后面的值只能是常量,不能是变量
switch语句的case穿透

如果switch语句中,case省略了break语句,就会开始case穿透;
当开始case穿透,后续的case就不会有匹配效果,内部的语句都会执行,直到看见break,或者将整体switch语句执行完毕,才会结束。

实例:

import java.util.Scanner;
public class Demo3If {
    public static void main(String[] args)
    {
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入星期数");
        int week=sc.nextInt();
        switch (week)
        {
            case 1:
                System.out.println("工作日day1");
            //    break;
            case 2:
                System.out.println("工作日day2");
                break;
            case 3:
                System.out.println("工作日");
                break;
            case 4:
                System.out.println("工作日");
                break;
            case 5:
                System.out.println("工作日");
                break;
            case 6:
                System.out.println("休息日");
                break;
            case 7:
                System.out.println("休息日");
                break;
            default:
                System.out.println("您的数据有误");
                break;
        }
    }
}

输入数据:
1
打印结果:
工作日day1
工作日day2

实例2:穿透现象的使用

import java.util.Scanner;
public class Demo3If {
    public static void main(String[] args)
    {
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入星期数");
        int week=sc.nextInt();
        switch (week)
        {
            case 1:
            case 2:
            case 3:
            case 4:
            case 5:
                System.out.println("工作日");
                break;
            case 6:

            case 7:
                System.out.println("休息日");
                break;
            default:
                System.out.println("您的数据有误");
                break;
        }
    }
}

输入数据:
3
打印结果:
工作日

循环结构

for 循环语句

for循环格式介绍:
for(初始化语句;条件判断语句;条件控制语句)
{
循环体语句;
}

执行过程:
<1>、 执行初始化语句,设置循环的初始状态,此部分在整个循环中只执行一次
<2>、执行条件判断语句,如果条件为 true ,则执行循环体内代码;如果为 false ,则直接退出循环
<3>、 执行条件控制语句,改变循环变量的值,以便进行下一次条件判断
<4>、 依次重新执行< 2 >、< 3 >、< 4 >,直到退出循环

实例:

public class Demo1For {
    public static void main(String[] args){
        for(int i=1;i<=3;i++)
        {
            System.out.println("折返跑");
        }
    }
}

打印结果:
折返跑
折返跑
折返跑

实例: 求1-100的偶数和

public class Demo1For {
    public static void main(String[] args){
        int sum=0;
        for(int i=1;i<=100;i++)
        {
            if(i%2==0)
           sum+=i;
        }
        System.out.println("数据1-100的偶数和为"+sum);
    }
}

打印结果:
数据1-100的偶数和为2550

经典案例:水仙花数

public class Demo1For {
    public static void main(String[] args) {
        int count=0;
        for (int i = 100; i <= 999; i++) {
            int ge = i % 10;
            int shi = i / 10 % 10;
            int bai = i / 100;
            if (ge * ge * ge + shi * shi * shi + bai * bai * bai == i) {
                System.out.print(i+" ");\\不带换行的打印输出
                count++;
                if(count%2==0)
                {
                    System.out.println();\\带换行的打印输出
                }
            }
        }
    }
}

打印结果:

153 370
371 407

while循环语句

初始化语句;
while(条件判断语句){
循环体语句;
条件控制语句;
}
< 1 >、执行初始化语句
< 2 > 、执行条件判断语句,判断 while 后面的条件是否成立( true / false )
< 3 >、 如果是true,执行循环内的操作代码
< 4 >、 执行条件控制语句

实例:

public class Demo2While {
    public static void main(String[] args){
    int count=0;	  //折叠次数
    double paper=0.1; //纸张厚度
    int zf=8844430;   //珠穆朗玛峰厚度
    while(paper<=zf){
        paper*=2;
        count++;
    }
    System.out.print(count);
  }
}
do while循环语句

do{
循环体语句;
}while(条件循环语句);

public class Demo2While {
    public static void main(String[] args){
    int count=11;
    do {
        System.out.print("程序员");
    }while(count<=10);//count=11不满足循环条件
  }
}

打印结果:
程序员
分析原因:
循环体至少被执行一次,无论循环条件是否成立

三种循环的区别
  • for和while循环先判断条件是否成立,然后确定是否执行循环体
  • do…while先执行一次循环体,然后判断条件是否成立,是否继续执行循环体
public class Demo2While {
    public static void main(String[] args){

    for(int i=1;i<=3;i++)
    {
        System.out.println(i);
    }
    //System.out.println(i);错误找不到符号
    int j=3;
    System.out.println("--------");
    while(j>=1)
    {
    System.out.println(j);
    j--;
    }
    System.out.println("最终的j是"+j);
  }
}

打印结果:

1
2
3
--------
3
2
1
最终的j是0

分析原因:
for和while的区别:

条件控制语句所控制的自增变量,因为归属for循环的语法结构,在for循环结束,就不能再次被访问到了
条件控制语句所控制的自增变量,对于while循环来说不归属其语法结构,在while循环结束后,该变量还可以继续使用

死循环

死循环格式:

        for(;;)
        {
        循环体;            
        }
        while(true)
        {
		循环体;
        }
        do {
         循环体;  
        }while(true);

while的死循环格式是最常用的 命令提示符窗口中的ctrl+C 可以结束死循环

跳转控制语句

break

作用: 结束当前的循环
实例:

public class Demo4Break {
        public static void main(String[] args)
        {
            for(int i=1;i<=5;i++)
            {
                if(i==4)
                {
                    break;
                }
                System.out.println(i+"层到了");
            }
        }
}

打印结果:

1层到了
2层到了
3层到了

continue

**作用:**跳过循环体中剩余的语句执行下一次循环。
实例:

public class Demo3Continue {

        public static void main(String[] args)
        {
            for(int i=1;i<=5;i++)
            {
                if(i==4)
                {
                    continue;
                }
                System.out.println(i+"层到了");
            }
        }
    }

打印结果:

1层到了
2层到了
3层到了
5层到了

break只可以跳出一层循环,如果需要跳出多层加标号

loop: while{
for(int i=0;i<5;i++)
{
	if(i==3}
	{
	break loop;
	}
}

Random

Random:产生随机数

  1. 导包:import java.util.Random;
  2. 创建对象:
    Random r=new Random();
    其中r是变量名
  3. 获取随机数
    int number =r.nextInt(10)//获取随机数的范围:[0,10)

实例:产生0到9的随机数

import java.util.Random;

public class Demo1Random {
    public static void main(String[] args){
        Random r=new Random();
        for(int i=0;i<5;i++)
        {
            int number =r.nextInt(10);
            System.out.println(number);
        }
    }
}

打印结果:
36473

产生1-10的随机数

int number =r.nextInt(10)+1;//产生随机数1到10
实例猜数字

程序自动生成1-100之间的数字,是程序猜出这个数字是多少

import java.util.Random;
import java.util.Scanner;

public class Demo2Random {
        public static void main(String[] args){
            Random r = new Random();
            Scanner sc=new Scanner(System.in);
            int randomNum =r.nextInt(100)+1;

            while(true)
            {
                System.out.println("请输入您猜的数据");
                int num =sc.nextInt();
                if(num>randomNum)
                {
                    System.out.println("猜大了");
                }
                else if(num<randomNum)
                {
                    System.out.println("猜小了");
                }
                else
                {
                    System.out.println("猜中了");
                    break;
                }
            }  
    }
}

打印结果:
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值