Java学习 5.Java-逻辑控制

简介: Java学习 5.Java-逻辑控制

逻辑控制

逻辑控制分为:选择语句、循环语句

一、if和switch选择语句

顺序中夹杂着循环,伴随着一次次的选择不断地成长

1.if语句

选择语句

单分支

if()

       表达式;

  int a6=0;
        if(a6==0)
        {
            System.out.println("a6==0");
        }

双分支

if(){

       表达式1;

}else{

       表达式2;

}

        int a4=10;
        if(a4==10){//括号内时布尔表达式
            System.out.println("a4==10");
        }else {
            System.out.println("a4!-10");

多分支

if(){

       表达式1;

}else if(){

       表达式2;

}else

       表达式3;

    int a5=10;
        if(a5==10){
            System.out.println("a5==1");//执行这个语句
        } else if (a5==2) {
            System.out.println("a5==2");
        } else if (a5==3) {
            System.out.println("a5==3");
        } else if (a5==4) {
            System.out.println("a5==4");
        }else{
            System.out.println("a5==5");
        }

2.switch 语句

switch(变量)

       case 1:

               语句1;

               break;

       case 2:

               语句2;

               break;

       case 3:

               语句3;

               break;

               ......

       default:

               语句n,当都不满足所有的case时;

    String str="abc";
        switch (str) {
            case "abc":
                System.out.println("abc");
                break;
            case "123":
                System.out.println("123");
                break;
            default:
                System.out.println("您输入有误");
            //可以是枚举

面试题:不能作为Switch参数的数据类型是什么?

float、double、boolean、long 这四种类型不能作为switch的参数

字符串String和字符char类型可以作为Switch的参数

3.Switch表达式和if表达式的区别

Switch表达式的参数不能是一个复杂的表达式,只能使用if表达式

二、练习:

1.判断一个数字是偶数还是奇数

 //练习题:判断一个数字是偶数还是奇数
        int num=10;
        if(num%2==0) {
            System.out.println("num是一个偶数");
        }else{
            System.out.println("num是一个奇数");
        }

2.判断一个数是奇数、偶数还是0

 //练习题2:判断一个数是正数还是负数还是0
        int num2=-5;
        if(num2>0) {
            System.out.println("num2是正数");
        }else if(num2==0){
            System.out.println("num2是0");
        }else{
            System.out.println("num2是负数");
        }

3. 判断一个年份是否是闰年

普通闰年:年份是4的倍数,且不是100的倍数

世纪闰年:年份是400的倍数

   //练习题3:键盘上输入一个年份,判断是否是闰年
        System.out.println("请输入一个年份");
        Scanner sc1=new Scanner(System.in);
        int year=sc1.nextInt();
        if((year%4==0)&&(year%100!=0)){
            System.out.println(year+"是一个普通闰年");
        } else if (year%400==0) {
            System.out.println(year+"是一个世纪闰年");
        }else{
            System.out.println(year+"不是闰年");
        }

Scanner输入函数

头文件:import java.util.Scanner;//自动生成

函数: Scanner sc1=new Scanner(System.in);

           int year=sc1.nextInt();

必须定义变量接收函数的值,否则无法使用,键盘上输入一个数,用读数必定义一个变量

        import java.util.Scanner;//头文件
        Scanner sc1=new Scanner(System.in);
        int year=sc1.nextInt();

switch语句支持嵌套,但是代码比较丑陋,不推荐使用

二、三个循环语句

1.while循环

条件:必须是一个布尔表达式

      int a = 1;
      while(a <= 10){
          System.out.println(a);
          a++;//条件要发生变化,不然会死循环
      }

练习题1:计算5的阶乘
        //练习题4:求5的阶乘
        int b=1;
        int ret=1;
        while(b<=5){
            ret=ret*b;
            b++;
        }
        System.out.println("ret="+ret);

练习题2:计算5的阶乘的和 1!+2!+3!+4!+5!
        //练习题4:求5的阶乘
        int b=1;
        int ret=1;
        int sum=0;
        while(b<=5){
            ret=ret*b;
            b++;
            sum=sum+ret;
        }
        System.out.println("ret="+ret);
        System.out.println("sum="+sum);

循环可以进行嵌套

注意事项:
好的代码,可读性很高

2.break——结束循环,不管循环还有几次

break的功能是让循环提前结束

案例:
public class day_5 {
    public static void main(String[] args) {
        int i=1;
        while(i<=10){
            if(i==3){
                break; //跳出循环
            }
            System.out.println(i);
            i++;
        }
    }
}

3.continue——跳出本次循环

continue是跳过本次循环,本次循环之后的循环条件继续执行

案例:
public class day_5 {
    public static void main(String[] args) {
        int i1=1;
        while(i1<=10){
            if(i1==3){
                i1++;
                continue; //跳出本次循环 死循环了 本次循环之后都将不会执行
            }
            System.out.println(i1);
            i1++;
        }

4.break,continue语句案例

写一个代码,找到1-100之间,

既能被3整除,也能被5整除的所有数字,使用break或者continue中的一个

代码实现
        int i2=1;
        for(i2=1;i2<=100;i2++) {
            if(i2%3==0&&i2%5==0){
                System.out.println(i2);
                continue;
            }
运行结果

5.for循环

案例 1

打印1到10的数字

代码实现
        //for循环打印一个1-10的数字
        int i3=0;
        for(i3=1;i3<=10;i3++){
            System.out.print(i3+" ");
        }
运行结果

快捷方式:fori
案例 2

求5的阶乘

代码实现
 //for循环求5的阶乘的和
        int i4=1;
        int sum=1;
        for (i4 = 1; i4 <= 5; i4++) {
            sum*=i4;
        }
        System.out.println("sum="+sum);
运行结果
案例3

求5的阶乘的和

代码实现
        //for循环求5的阶乘的和
        int i5=1;
        int sum2=1;
        int he=0;
        for(i5=1;i5<=5;i5++){
            sum2*=i5;
            he+=sum2;
        }
        System.out.println("阶乘的和="+he);
运行结果

6.do-while循环

先执行再判断,最少执行一次,用的比较少

语句

do{

       循环语句;

}while(循环条件);

注意事项

1.do while循环最后的分号不要忘记

2.一般do while很少用到,while循环和for循环用的比较多

三、输入输出

1.输出到控制台

基本语法

System.out.println(msg);                输出一个字符串且换行

System.out.print(msg);                   输出一个字符串,不换行

System.out.printf(format,msg);       格式化输出

2.从键盘中输入

要进行导包(输入头文件):import java.util.Scanner;

输入什么,next什么

        Scanner sc1=new Scanner(System.in);
        String name=sc1.nextLine();
        int age=sc1.nextInt();
        float num1=sc1.nextFloat();
        System.out.println("姓名"+name+"\n"+"年龄"+"\n"+"工资"+num1);

3.循环输入

Scanner 变量名 = new Scanner(System.in);

变量名.hasNextInt() ;观察输入字符是否为空

CTRL+z; 结束循环输入

        //循环输入
        Scanner sc2=new Scanner(System.in);
        while(sc2.hasNextInt()){
            int a1=sc2.nextInt();
            System.out.println(a1);
        }
运行结果

注意事项

当循环输入多个数据的时候,使用 CRTL+z 来结束输入


目录
相关文章
|
26天前
|
Java API Maven
2025 Java 零基础到实战最新技术实操全攻略与学习指南
本教程涵盖Java从零基础到实战的全流程,基于2025年最新技术栈,包括JDK 21、IntelliJ IDEA 2025.1、Spring Boot 3.x、Maven 4及Docker容器化部署,帮助开发者快速掌握现代Java开发技能。
258 1
|
1月前
|
数据采集 搜索推荐 Java
Java 大视界 -- Java 大数据在智能教育虚拟学习环境构建与用户体验优化中的应用(221)
本文探讨 Java 大数据在智能教育虚拟学习环境中的应用,涵盖多源数据采集、个性化推荐、实时互动优化等核心技术,结合实际案例分析其在提升学习体验与教学质量中的成效,并展望未来发展方向与技术挑战。
|
2月前
|
并行计算 Java API
Java 基础篇完整学习攻略
本教程涵盖Java基础到高级内容,包括模块化系统、Stream API、多线程编程、JVM机制、集合框架及新特性如Records和模式匹配等,适合零基础学员系统学习Java编程。
71 0
|
2月前
|
前端开发 Java API
新手 Java 学习资料结合最新技术的精选推荐及高效学习资源参考
本文为新手推荐了涵盖Java基础到最新技术的学习资料,包括官方文档、在线课程、书籍、学习网站及实践平台,帮助系统掌握Java编程,并通过Spring Boot实战提升开发能力。
113 1
|
2月前
|
NoSQL Java 数据库
Java 全栈学习超全面知识图谱构建完整 Java 知识体系
本文全面讲解Java核心技术体系,涵盖基础语法、面向对象、集合框架、主流框架(Spring、Spring Boot、MyBatis)及三大实战项目(微服务电商、响应式博客、企业后台系统),助你系统掌握Java全栈开发技能。
178 1
|
2月前
|
存储 算法 安全
JAVA 八股文全网最详尽整理包含各类核心考点助你高效学习 jAVA 八股文赶紧收藏
本文整理了Java核心技术内容,涵盖Java基础、多线程、JVM、集合框架等八股文知识点,包含面向对象特性、线程创建与通信、运行时数据区、垃圾回收算法及常用集合类对比,附有代码示例与学习资料下载链接,适合Java开发者系统学习与面试准备。
676 0
|
1月前
|
存储 搜索推荐 安全
Java 大视界 --Java 大数据在智能教育学习效果评估与教学质量改进中的应用(209)
本文探讨了 Java 大数据在智能教育中的创新应用,涵盖学习效果评估、教学质量改进及个性化教学方案定制等内容,结合实战案例与代码解析,展现技术如何赋能教育智能化转型。
|
3月前
|
Java 数据库 数据安全/隐私保护
银行流水生成器在线制作,银行转账p图在线生成,java实现最牛的生成器【仅供学习用途】
本资料探讨银行系统核心技术,涵盖交易记录生成、电子回单加密验真及基于Java的财务管理系统开发。主要内容包括:交易记录实体类设计(不可变性与数字签名)
|
3月前
|
前端开发 Java 数据库
2025 年 Java 学习完整步骤及详细路线指南
本教程涵盖Java从基础到高级的完整学习路径,包括环境配置、语法基础、面向对象编程、集合框架、多线程、网络编程、数据库操作、Spring Boot、微服务架构及项目实战。通过系统学习与实操,助你全面掌握Java核心技术与企业级应用开发。
496 1
|
3月前
|
数据采集 搜索推荐 算法
Java 大视界 -- Java 大数据在智能教育学习社区用户互动分析与社区活跃度提升中的应用(274)
本文系统阐述 Java 大数据技术在智能教育学习社区中的深度应用,涵盖数据采集架构、核心分析算法、活跃度提升策略及前沿技术探索,为教育数字化转型提供完整技术解决方案。

热门文章

最新文章