JAVA的基础语法(三)---判断与循环

流程控制语句

顺序结构

是Java程序默认的执行流程,按照代码的先后顺序,从上到下依次执行。

分支结构

if语句结构

if  (关系表达式){

        语句体;

}

if注意点:1.如果语句体中只有一句代码,大括号可以省略不写   2.如果对一个布尔类型进行判断时,直接把变量写在小括号中即可。

public class Test1 {
    public static void main(String[] args) {
        //红灯亮,则停止
        //黄灯亮,则减速
        //绿灯亮,则行驶
        boolean isLightGreen = false;
        boolean isLightYellow = true;
        boolean isLightRed = false;
        if (isLightGreen){
            System.out.println("gogogo!");
        }
        if (isLightYellow){
            System.out.println("slow!");
        }
        if (isLightRed){
            System.out.println("stop!");
        }
    }
}

if-else语句结构

if  (关系表达式){

        语句体1;

}else{

         语句体2;

}

import java.util.Scanner;

public class Test2 {
    public static void main(String[] args) {
        //影票选座
        //如果票的序号为奇数,则打印出坐左边
        //如果票的序号为偶数,则打印出坐右边
        //票的序号为1-100才为有效
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入你要选择的座位序号:");
        int number = sc.nextInt();
        if(number>=0&&number<=100){
            if(number%2==0){
                System.out.println("你的座位在右边");
            }else{
                System.out.println("你的座位在左边");
            }
        }
        
    }
}

if第三种格式--多种情况判断

if  (关系表达式1){

        语句体1;

}else if (关系表达式2){

         语句体2;

}

        ...

        else{

        语句体n+1;

}

import java.util.Scanner;

public class Test3 {
    public static void main(String[] args) {
        //商品总价为1000,键盘录入会员的级别,并计算实际支付的价钱
        //会员1级:打9折
        //会员2级:打8折
        //会员3级:打7折
        //非会员:不打折
        int primeprice = 1000;
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入您的会员等级,若非会员请输入0:");
        int vip = sc.nextInt();
        if (vip == 1){
            System.out.println("实际支付价钱为:"+(primeprice*0.9));
        }else if (vip ==2){
            System.out.println("实际支付价钱为:"+(primeprice*0.8));
        }else if (vip ==3){
            System.out.println("实际支付价钱为:"+(primeprice*0.7));
        }else {
            System.out.println("实际支付价钱为:"+primeprice);
        }
    }
}

Switch结构

import java.util.Scanner;

public class Test4 {
    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("今天的运动是跑步");
                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;

        }
    }
}

switch结构中一些需要注意的:

default的位置和省略

位置:default不一定是写在最下面的,可以写在任意位置,只不过习惯写在最下面

省略:default可以省略,语法不会有问题,但是最好别省略。

case穿透---缺失break

首先那小括号中表达式的值与下面每一个case进行匹配,如果此时匹配上了则会执行相对应的语句体,而如果此时发现break,则会结束整个switch语句,但是如果没有break,则程序会继续执行下一个case的语句体,直到遇见break或者大括号为止。

switch新特性---在JDK12以后

//请注意,如果case中只有一句语句,则{}可以省略
switch (week){
            case 1->{
                System.out.println("今天的运动是跑步");
            }
            case 2-> {
                System.out.println("今天的运动是游泳");
            }
            case 3-> {
                System.out.println("今天的运动是慢走");
            }
            case 4-> {
                System.out.println("今天的运动是动感单车");
            }
            case 5-> {
                System.out.println("今天的运动是拳击");
            }
            case 6 -> {
                System.out.println("今天的运动是爬山");
            }
            case 7-> {
                System.out.println("今天要好好吃一顿");
            }
            default->{
                System.out.println("没有这个星期");
            }

        }

 选择switch语句还是if的第三种结构的判断方法:

1.如果我们判断的在一个范围内时,使用if的第三种结构

2.如果需要我们把有限的数据列举出来,选择其中一个执行时,我们需要使用switch语句。

import java.util.Scanner;

public class Test5 {
    public static void main(String[] args) {
        //键盘录入星期天数,输出工作日和休息日
        //1-5为工作日,6-7为休息日
        //可以使用if的第三种结构、或者switch语句,在这里使用switch语句
        //由于存在多个有限情况的输出相同,在switch语句中可以采取case穿透情况
        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;
        }
    }
}

在JKD12以后可以简写为:

 switch (week){
            case 1,2,3,4,5 -> System.out.println("今天是工作日");
            case 6,7 -> System.out.println("今天是休息日");
            default -> System.out.println("没有这个星期");
        }

 循环结构

for循环

for(初始化语句;条件判断语句;条件控制语句){

        循环体语句;

}

public class CirculationDemo1 {
    //需求:求1-10之间的数据和,并输出求和结果
    public static void main(String[] args) {
        int sum1 = 0;
        for (int i =1;i<=10;i++){
            sum1 +=i;
        }
        System.out.println(sum1);
    }
}
public class CirculationDemo2 {
    //需求:求1-100之间的偶数数据和,并输出求和结果
    public static void main(String[] args) {
        int sum1 = 0;
        for (int i =0;i<=100;i=i+2){
            sum1 +=i;
        }
        System.out.println(sum1);
    }
}
import java.util.Scanner;

public class CirculationDemo3 {
    //需求:键盘输入两个数字,表示一个范围,统计在该范围中,
    // 即能被3整除,又能被5整除数字有多少个?
    public static void main(String[] args) {
        Scanner sc1 = new Scanner(System.in);
        System.out.println("请输入第一个数字:");
        int start = sc1.nextInt();
        Scanner sc2= new Scanner(System.in);
        System.out.println("请输入第二个数字:");
        int end = sc2.nextInt();
        int num = 0;
        for (int i=start;i<=end;i++){
            if(i%3==0&&i%5==0){
                num+=1;
            }
        }
        System.out.println(num);
    }
}

While循环语句结构

while(条件判断语句){

        循环体;

        条件控制语句;

}

public class CirculationDemo4 {
    //需求:循环折叠纸张,只有纸张厚度<珠穆朗玛峰的高度时,循环才能继续,否则循环停止
    //统计折叠的次数
    public static void main(String[] args) {
        int height = 8844430;
        double paper = 0.1;
        int count = 0;
        while (paper<height){
            paper = paper*2;
            count++;
        }
        System.out.println("此时折叠了"+count+"次");
    }
}

do-while语句

do{

        循环体;

        条件控制语句;

}while(条件判断语句)

死循环

//for结构下的死循环
for ( ; ; ){
            System.out.println("循环执行一直打印的内容");
        }
//while结构下死循环
while (true){
            System.out.println("循环执行一直打印的内容");
        }
//do-while结构下死循环
do {
            System.out.println("循环执行一直打印的内容");
        }while (true);
//不要同时出现,同时出现会报错,因为死循环的代码是不会执行循环之后的内容
//最好使用while结构下的死循环

break和continue

break: 存在于switch和循环语句中,碰见break,表示跳出(结束)该结构

continue: 只存在与循环中,表示跳出本次循环,继续执行下次循环。

public class CirculationDemo5 {
    //需求:逢七过
    //数字中包含7或者是7的倍数都要说 过!
    //在控制台打出1-100之间的满足逢7过的数据
    public static void main(String[] args) {
        for (int a = 1;a<=100;a++){
            if (a%7==0||a%10==7||a/10==7){
                System.out.println("逢7过的数字是"+a);
            }
        }
    }
}
import java.util.Scanner;

public class CirculationDemo6 {
    //需求:键盘录入一个数,并判断该数是否为质数
    //除了1和本身,没有其他约数,就叫做质数
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入数字");
        int number = sc.nextInt();
        boolean flag = true;
        for (int i =2;i<=number-1;i++){
            if (number%i==0){
               flag = false;
            }
        }
        if (flag){
            System.out.println(number+"是个质数。");
        }else {
            System.out.println(number+"不是个质数。");
        }
    }
}
import java.util.Random;
import java.util.Scanner;

public class CirculationDemo7 {
    //需求:程序自动生成一个1-100的随机数,再使用代码去猜测这个数字是多少
    public static void main(String[] args) {
        //生成1-100随机数
        Random r = new Random();
        int number = r.nextInt(100)+1;//100表示随机数的范围,生成的准确范围为:[0,100)
        Scanner sc = new Scanner(System.in);
        while (true){
            System.out.println("请输入数字");
            int guessnumber = sc.nextInt();
            if (guessnumber<number){
                System.out.println("您猜的数据小了");
            } else if (guessnumber>number) {
                System.out.println("您猜的数据大了");
            }else {
                System.out.println("恭喜您猜中了!");
            }
        }

    }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值