java第五课——逻辑控制

目录

一:顺序结构

二:分支结构

2.1if语句

2.1.1语法格式

2.1.2具体实例

 2.2switch语句

2.2.1语法格式

2.2.2具体实例

三:循环结构

3.1while循环

3.1.1语法格式

3.1.2具体实例

 break

continue

 3.2for循环

3.2.1语法格式

3.2.2具体实例

四:输入输出 

4.1输出到控制台

4.1.1语法格式

4.1.2具体实例

4.2从键盘输入

猜数字游戏


        喧闹任其喧闹,自由我自为之。世间万事万物,皆有其所遵循之规律,亦都逃脱不了这三种结构。本课我们就详解这这三种结构!

一:顺序结构

        顺序结构,顾名思义,根据代码书写的顺序依次执行即可。

二:分支结构

2.1if语句

2.1.1语法格式

if(布尔表达式){
//语句1
}

if(布尔表达式){
//语句1
}
else{
//语句2
}

if(布尔表达式1){
// 语句1
}else if(布尔表达式2){
// 语句2
}else{
// 语句3
}

2.1.2具体实例

题目:判断某一年是不是闰年

思路:

具体代码如下: 

package test;

public class test {
    public static void main(String[] args) {
        int year = 2000;
        if (year % 100 == 0) {
// 判定世纪闰年
            if (year % 400 == 0) {
                System.out.println("是闰年");
            } else {
                System.out.println("不是闰年");
            }
        } else {
// 普通闰年
            if (year % 4 == 0) {
                System.out.println("是闰年");
            } else {
                System.out.println("不是闰年");
            }
        }
    }
}

运行结果如下:

注意:

  1. if else语句可以不加括号,此时if后面只能跟一条语句;
  2. 没有括号标识时,else和最近的if匹配,但是我们不建议这样写。

 2.2switch语句

2.2.1语法格式

switch(表达式){
case 常量值1:{
//语句1;
break;
}
case 常量值2:{
//语句2;
break;
}
...
default:{
//内容都不满足时执行语句;
break;
}
}

2.2.2具体实例

要求:根据choose值输出喜欢的球队。

public class test{
    public static void main(String[] args) {

        int choose = 1;
        switch(choose) {
            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;
        }

    }
}

 运行结果如下:
 

注意:
1.多个case后的常量值不可以重复;
2.switch的括号内只能是以下类型的表达式:
基本类型:byte、char、short、int,注意不能是long、float、double、boolean类型;
引用类型:String常量串、枚举类型。

三:循环结构

3.1while循环

3.1.1语法格式

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

3.1.2具体实例

计算1!+2!+...+10!

代码如下:

public class test{
    public static void main(String[] args) {
        int i = 1;
        int tmp=1;
        int sum=0;
        while(i <= 10){
            tmp *= i;
            sum += tmp;
            i++;
        }
        System.out.println(sum);
    }
}

运行结果如下:

 break

        遇到break,立即结束循环。

具体实例如下:

public class test{
    public static void main(String[] args) {
        int num = 100;
        while (num <= 200) {
            if (num % 6 == 0) {
                System.out.println("找到了 6 的倍数, 为:" + num);
                break;
            }
            num++;
        }
    }
}

分析:

找到100~200之间的第一个6的倍数。如果找到了,直接break跳出循环,程序随即结束。

continue

        遇到continue,跳过本次循环,直接进行下一次循环。

具体实例如下:

public class test{
    public static void main(String[] args) {
        int num = 100;
        while (num <= 200) {
            if (num % 6 == 0) {
                System.out.println("找到了 6 的倍数, 为:" + num);
                continue;
            }
            num++;
        }
    }
}

        如果我们想找到100~200之间所有6的倍数,该代码并不能实现我们的要求,因为当num=102进入循环之后,判断其为6的倍数,接着continue跳过continue之后的代码,直接执行程序的判断部分,102<=200依然成立,进入循环,接着又会执行到continue而跳过其后的代码,显然陷入了死循环。所以我们对代码做如下的修改:

public class test{
    public static void main(String[] args) {
        int num = 100;
        while (num <= 200) {
            if (num % 6 == 0) {
                System.out.println("找到了 6 的倍数, 为:" + num);
                num++;
                continue;
            }
            num++;
        }
    }
}

运行结果如下:
 

 3.2for循环

3.2.1语法格式

for(表达式①;布尔表达式②;表达式③){
表达式④;
}

表达式1: 用于初始化循环变量初始值设置,在循环最开始时执行,且只执行一次;
表达式2: 循环条件,满则循环继续,否则循环结束;
表达式3: 循环变量更新方式;

执行过程:

①②③④--->②③④--->②③④--->②③④--->②③④--->②③④--->...--->②为false,循环结束。

3.2.2具体实例

计算1!+2!+...+10!

代码如下:

public class test{
    public static void main(String[] args) {
        int i = 1;
        int tmp=1;
    int sum=0;
    for(i=1;i<=10;i++){
        tmp *= i;
        sum += tmp;
    }
        System.out.println(sum);
}
}

运行结果如下:

四:输入输出 

4.1输出到控制台

4.1.1语法格式

System.out.println(msg); // 输出一个字符串, 带换行
System.out.print(msg); // 输出一个字符串, 不带换行
System.out.printf(format, msg); // 格式化输出

4.1.2具体实例

public class test{
    public static void main(String[] args) {
        String msg="此生无悔入华夏!";
        System.out.println(msg); // 输出一个字符串, 带换行
        System.out.print(msg); // 输出一个字符串, 不带换行
        //System.out.printf(format, msg); // 格式化输出
        int x=10;
        System.out.printf("%d",x);
    }
}

运行结果如下:

4.2从键盘输入

 具体示例如下:

import java.util.Scanner; //需要导入util包

public class test{
    public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
        System.out.println("请输入你的姓名:");
        String name = sc.nextLine();
        System.out.println("请输入你的年龄:");
        int age = sc.nextInt();
        System.out.println("请输入你的工资");
        float salary = sc.nextFloat();
        System.out.println("你的信息如下:");
        System.out.println("姓名: "+name);
        System.out.println("年龄: "+age);
        System.out.println("工资: "+salary);
    }
}

 运行结果如下:

猜数字游戏

        猜数字游戏,很简单,利用时间戳和循环语句,即可完成。

//猜数字游戏
import java.util.Random;
public class test{
    public static void main(String[] args) {
Random random = new Random();  //默认随机种子是系统时间
        Scanner sc = new Scanner(System.in);
        int guess = random.nextInt(100)+1;
        while(true){
            System.out.println("请输入你要猜的数字:(1~100)");
            int num = sc.nextInt();
            if(num < guess){
                System.out.println("猜小了");
            } else if(num > guess){
                System.out.println("猜大了");
            }else{
                System.out.println("牛逼,猜对了");
                break;
            }
        }
        sc.close();
    }
}

本课内容结束!

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值