3、Java的If语句与For循环

2023-11-18

一 语句

  • 条件语句:根据不同的条件,执行不同的语句
    • if
    • if .. else
    • if .. else if
    • if .. else if .. else if.. else
    • switch
  • 循环语句:重复执行某些动作
    • for
    • while
    • do .. while

 

1.1 if语句

单分支if语句的基本格式为:

if (condition) {
     statement;
}

 

双分支的if语句基本格式为:

if (condition1) {
     statement1;
} else if (condition2) {
     statement2;
}

 

多分支的if语句基本格式为:

if (condition1) {
     statement1;
} else if (condition2) {
     statement2;
} else if (condition3) {
     statement4
}...
else {
     statement;
}

 

如下面一段代码

public class TestIf {
    public static void main(String[] args) {
        int i = 20;
        if (i < 20) {
            System.out.println("<20");
        } else if (i < 40) {
            System.out.println("<40");
        } else if (i < 60) {
            System.out.println("<60");
        } else
            System.out.println(">=60");
    }
}

 

 

1.2 for循环

for循环为如下形式:

for (表达式1; 表达式2; 表达式3) {
     statement; ... ;
}

执行过程:

执行过程如下如所示:

首先计算表达式1,接着执行表达式2,若表达式2的值=true,则执行statement,接着计算表达式3,再判断表达式2的值;依次重复下去,直接表达式2的值为false

 

如下面一段代码

public class TestFor {
    public static void main(String[] args) {
        long result = 0;
        long f = 1;
        for (int i = 1; i <= 10; i++) {
            f = f * i;
            result += f;
        }
        System.out.println("result=" + result);
    }
}

上面这段代码表示计算1!+2!+3!+...+10!

 

 

练习:编写程序,用一个for循环计算1+3+5+7+...+99的值,并输出结果

public class OddSum {
    public static void main(String[] args) {
        int sum = 0;
        for (int i = 1; i <= 99; i++) {
            if (i % 2 == 1) {
                sum += i;
            }
        }
        System.out.println("sum:" + sum);
    }
}

或者


 

public class OddSum {
    public static void main(String[] args) {
        int sum = 0;
        for (int i = 1; i <= 99; i+=2) {
            sum += i;
        }
        System.out.println("sum:" + sum);
    }
}

 

1.3 while & do while语句

1.3.1 while语句格式如下形式

while (condition) {
     statement;
}

其执行过程如下图所示:

先判断逻辑表达式的值。若为true,则执行后面的语句,然后再次判断条件并反复执行,知道条件不成立为止

 

1.3.2 do while语句格式如下形式:

一般很少用do...while

do {
     statement;
}

while (condition);

 

执行过程如下

先执行语句,再判断逻辑表达式的值,若为true,再执行语句,否则结束循环

 

 

 

使用while循环,完成从0到9的输出

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

 

 

1.4 break和continue语句

1.4.1 break

break语句用于终止某个语句块的执行。用在循环语句体重,可以强制退出循环。

 

例如:循环打印1到10,但是当i打印到3的时候,直接退出循环

public class TestBreak {
    public static void main (String[] args) {
        int stop = 4;
        for (int i=1; i<=10; i++) {
            if (i == stop) {
                break;
            }
            System.out.println("i=" + i);
        }
    }
}

 

1.4.2 continue

continue语句用在循环语句体中,用于终止某次循环的过程,跳过循环体中continue语句下面未执行的循环,开始下一次的循环过程

 

例如:打印1到6,但是跳过4

public class TestContinue {
    public static void main(String[] args) {
        int skip = 4;
        for (int i=1;i<=6;i++) {
            if (i==skip) {
                continue;
            }
            System.out.println("i=" + i);
        }
    }
}

 

 

 

 

二 循环语句案例

2.1 利用循环完成以下内容

利用for循环和while循环,输出1-100内前5个可以被3整除的数

public class PracticeFor {
    public static void main(String[] args) {
        int count = 1;
        for (int i=1;i<=100;i++) {
            if (i%3==0 && count<=5) {
                System.out.println("i=" + i);
                count++;
            }
        }
    }
}



public class PracticeWhile {
    public static void main(String[] args) {
        int count = 0;
        int i = 1;
        while (i<=100) {
            if (i%3==0) {
                System.out.println("i=" + i);
                count++;
            }
            if (count==5) {
                break;
            }
            i++;
        }
    }
}

 

2.2 输出101到200内的质数

public class PrimeNum {
    public static void main(String[] args) {
        for (int i=101;i<=200;i+=2) {
            boolean f = true;
            for (int j=2;j<i;j++) {
                if (i%j==0) {
                    f = false;
                    break;
                }
            }
            if (!f) {
                continue;
            }
            System.out.println(i);
        }
    }
}

 

 

2.3 利用for循环写程序

输出1-100之间能被5整除的数,且每行输出3个

public class TestFive {
    public static void main(String[] args) {
        for (int i=1;i<=100;i++) {
            if (i%5==0) {
                System.out.print(i+" ");
            }
            if (i%15==0) {
                System.out.println();
            }
        }
    }
}

 

2.3 利用for循环打印九九乘法表

九九乘法表如下形式:

 

1*1=1

1*2=2    2*2=4

1*3=3    2*3=6    3*3=9

1*4=4    2*4=8    3*4=12    4*4=16

1*5=5    2*5=10    3*5=15    4*5=20    5*5=25

1*6=6    2*6=12    3*6=18    4*6=24    5*6=30    6*6=36

1*7=7    2*7=14    3*7=21    4*7=28    5*7=35    6*7=42    7*7=49

1*8=8    2*8=16    3*8=24    4*8=32    5*8=40    6*8=48    7*7=56    8*8=64

1*9=9    2*9=18    3*9=27    4*9=36    5*9=45    6*9=54    7*9=63    8*9=72    9*9=81

 

public class Multiplication {
    public static void main(String[] args) {
        for (int i=1;i<=9;i++) {
            for (int j=1;j<=i;j++) {
                System.out.print(j+"x"+i+"="+(j*i)+"\t");
            }
            System.out.println();
        }
    }
}

 

 

 

 

 

 

三 switch语句及方法

switch语句功能与if..else if...else if语句功能类似。多条件,其格式如下:


switch() {
     case xx:
          ...
     case xx:
          ...
     default:
          ...
}
  • 小心case穿透,推荐使用break语句
  • 多个case可以合并到一起
  • default可以省略,但不推荐省略
  • Java中的switch语句只能探测int类型值

 

如下小程序

public class TestSwitch {
    public static void main(String[] args) {
        int i = 18;
        switch (i) {
            case 8 :
                System.out.println("2");
                break;
            case 2 :
                System.out.println("8");
                break;
            case 9 :
                System.out.println("9");
                break;
            default:
                System.out.println("error");
        }
    }
}

当i为8时,打印为2;当i为2时,打印8;当i为9时,打印为9;其他情况打印为error

 

 

3.1 方法

Java的方法类似于其他语言的函数,是一段用来完成特定功能的代码片段,声明格式:

 

[修饰符1  修饰符2 ...] 返回值类型 方法名(形式参数列表) {

     Statement;

}

  • 形式参数:在方法被调用时用于接收外界输入的数据
  • 实参:调用方法时实际传给方法的数据
  • 返回值:方法在执行完毕后返还给调用它的环境的数据
  • 返回值类型:事先约定的返回值的数据类型,如无返回值,必须给出返回值类型void

 

  1. Java语言中使用调用方法:对象名.方法名(实参列表)
  2. 实参的数目、数据类型和次序必须和所调用方法声明的形参列表匹配
  3. return语句终止方法的运行并指定要返回的数据

 

Java中进行函数调用中传递参数时,遵循值传递的原则:

  • 基本类型传递的是该数据值本身。引用类型传递的是对对象的引用,而不是对象本身

 

如下一段小程序

public class TestMethod {
    public static void main(String[] args) {
        m();               //调用m()方法
        m2(5);               //调用m2()方法,并指定实参,即int i = 5
        m3('3',4);
        m4(4,6);
        int i = m4(4,6);
        System.out.println(i);
    }

    public static void m() {          //void表示没有任何的返回值
        //return;     //不能出现return,因为出现return表示终止方法运行,后面语句出现问题
        System.out.println("ok");
        System.out.println("Hello");
    }

    public static void m2(int i) {          //int i为形参,调用时为实参
        if (i > 3) {
            return;
        }
        System.out.println(i);
    }

    public static void m3(int i, int j) {
        System.out.println(i + j);
    }

    public static int m4(int i, int j) {
        return i > j ? i : j;
    }
}

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

3、Java的If语句与For循环 的相关文章

  • 今天发现rabbitMQ消息堆积

    发现有三十多万的消息堆积在10的queue里没有被消费 记录一下查看问题的步骤 1 jps 找出程序的PID 2 jstack PID 查看线程dump 发现rabbitMQ的consumer worker线程block住了 Thread
  • 根据图片地址得到文件流

    得到文件流 param url 图片地址 return public static byte getFileStream String url try URL httpUrl new URL url HttpURLConnection co
  • 什么是多态?对于多态的理解....

    什么是多态 我们都知道面向对象有四个基本特性 抽象 封装 继承 多态 概括可以理解为 抽象 封装 继承 是多态的基础 多态是抽象 封装 继承的表现 多态 是Java中非常重要的一部分 简单理解 不同类的 对象 对同一消息 做出了不同的响应就
  • 接口的加密解密

    接口加密 1 接口参数加密 基础加密 2 接口参数加密 接口时效性验证 一般达到这个级别已经非常安全了 3 接口参数加密 时效性验证 私钥 达到这个级别安全性固若金汤 4 接口参数加密 时效性验证 私钥 Https 我把这个级别称之为金钟罩
  • 【一】第一个java程序详解

    第一个java程序详解 一 前言 二 创建并编写java源代码的文件 创建java源代码文件 更改文件后缀 java代码的结构 三 编译执行 编译 执行 四 总结 五 附 java关键字 一 前言 通过之前上一节 开篇 Java语言介绍及环
  • 使用jemeter进行压力测试关注的指标

    一 压测设置 线程数 并发数量 能跑多少量 具体说是一次存在多少用户同时访问 Rame Up Period in seconds 表示JMeter每隔多少秒发动并发 理解成准备时长 设置虚拟用户数需要多长时间全部启动 如果线程数是20 准备
  • 集合addAll方法使用存在的问题。

    集合addAll 方法的时候 这里里有两个集合 集合2要拿到集合1中的元素 然后对集合2进行removeAll方法 结果集合1中的值也没有了 只是因为listTwo listOne 只是把集合1的引用给了集合2 集合1和集合2的引用是指向同
  • 5、面向对象的设计思想

    一 面向对象设计思想 1 1 面向过程的设计思想与面向对象的设计思想 例如 我要去新疆 面向过程 我开车 我挂挡 我踩油门 我过河北 我过陕西 面向对象 我命令车去新疆 车怎么去不关我事 信息封装在这这个类的内部 我不用去了解车整个开动的过
  • MVC发展历程及思想

    两种web应用程序的开发模式 model 1 JSP JavaBean JSP负责 页面显示 页面跳转 调用Javabean处理数据 处理请求 JavaBean负责 数据封装保存 数据处理逻辑 适用场景 model 1 方式适合开发业务逻辑
  • 一文彻底弄懂零拷贝原理

    零拷贝 零拷贝 Zero Copy 是一种 I O 操作优化技术 可以快速高效地将数据从文件系统移动到网络接口 而不需要将其从内核空间复制到用户空间 其在 FTP 或者 HTTP 等协议中可以显著地提升性能 但是需要注意的是 并不是所有的操
  • 各种注释总结

    jsp注释 html注释
  • 《编写高质量代码:改善Java程序的151个建议》读书笔记

    编写高质量代码 改善Java程序的151个建议 秦小波 67个笔记 前言 本书附带有大量的源码 下载地址见华章网站www hzbook com 建议11 养成良好习惯 显式声明UID SerialVersionUID 也叫做流标识符 Str
  • 对接百度api的工具类:Base64Util,FileUtil,HttpUtil

    对接百度api的工具类 Base64Util FileUtil HttpUtil package com baidu ai aip utils Base64 工具类 public class Base64Util private stati
  • 求一个数组的最大值最小值及其下标

    求一个数组的最大值最小值及其下标 思路 假定一个数为最大值 如果有个数比假定的最大值还大 那么该数就为最大值 最小值同理 使用for循环 public class MaxMin public static void main String
  • java动态代理简单实例

    java动态代理简单实例 package hello import java lang reflect InvocationHandler import java lang reflect Method import java lang r
  • java基础之HashSet详解

    HashSet详解 HashSet是基于HashMap实现的一个单列存储的集合类 将所有的数据存在HashMap的key值中 而value全部使用一个Object对象存储 继承关系 public class HashSet
  • 黑豹程序员-统一身份认证接口

    术语和定义 1 IAM Identity Access Manager 统一身份认证系统 2 IDM Identity Manager 身份管理 3 SSO Single Sign On 单点登录 4 AD Active Directory
  • java连接oracle出现ORA-12505错误

    问题 sqlplus可以连接 但java连接报错 ORA 12505 ORA 12505 TNS listener does not currently know of SID given in connect descr 解析 原因 数据
  • mysql无法连接问题及其环境变量配置

    问题 Can t connect to MySQL server on localhost 3306 10061 方案一 不推荐 第一 在环境变量 系统变量的path中添加mysql的bin目录 我的是D mysql mysql 8 0 2
  • 详解toLowerCase(判断字符串相等)

    一 toLowerCase 函数简介 toLowerCase 是一个在多个编程语言中都存在的字符串方法 它的作用是将字符串中的所有大写字母转换为对应的小写字母 常用于文本处理 搜索和比较等情况 以确保字符串的一致性和非大小写敏感的操作 二

随机推荐

  • A Survey on Metaverse: the State-of-the-art,Technologies, Applications, and Challenges

    本文是对 A Survey on Metaverse the State of the art Technologies Applications and Challenges 的翻译 元宇宙综述 现状 技术 应用和挑战 摘要 1 引言 2
  • vue生命周期mounted和activated使用、踩坑

    activated 说到activated不得不提到keep alive 你切换出去又切出来会调用到它 你可以理解为生命周期钩子函数 用法也一样 mounted 指的是实例被挂载后调用 如果没有keep alive每次切回来该组件都会触发一
  • 理解Spring的AOP和Ioc/DI就这么简单

    一 什么叫Ioc DI Ioc Inversion of Control 控制反转 DI Dependency Injection 依赖注入 其实这两个概念本质上是没有区别的 那我们先来看看什么叫做Ioc 假设这么一个场景 在A类中调用B类
  • 华硕重装系统键盘灯失效 =>重装ATK驱动

    1 点击网站华硕服务与支持 https www asus com cn support 2 输出笔记本型号 选择产品 3 下载驱动 3 1选择驱动程序和工具软件 3 2选择操作系统 3 3找到ATK驱动并且下载 4 安装驱动 4 1安装AT
  • 如何使用随机数实现自动发扑克牌?

    学习不止 问答不止 一 粉丝问题 二 相关函数说明 1 函数说明 产生随机数的方法很多 常用的是rand srand 来看一下这2个函数的定义 SYNOPSIS include
  • 如何导入符号 emdk?

    我在最新的 Android Studio 中创建了一个新的 android projekt 我想导入和使用 Symbol EMDK 包 虽然我像这样放入 gradle implementation com symbol emdk 9 1 1
  • 一文带您了解软件多租户技术架构

    1 多租户技术概述 随着近几年云计算技术的不断发展和成熟 云计算多租户技术在 SaaS 服务领域获得得快速的发展和广泛的应用 基于多租户技术的业务平台首先要保证不同租户业务的隔离 业务隔离主要包括下面 2 个方面 物理隔离 租户开展业务所依
  • 字符串的字体和显示 (3)

    安卓有三种字符串 String String Array Quantity String Plurals String和String Array容易理解 一个是字符串 一个是字符串数组 通过 String planets res getSt
  • Qt做发布版,解决声音和图片、中文字体乱码问题

    前些天做Qt发布版 发现居然不显示图片 后来才发现原来还有图片的库没加 找找吧 去qt的安装包 我装在了F盘 在F盘F QT qt plugins 找到了plugins 这里面有个 imageformats是图片的库 里面有jpg gif等
  • 谷歌开源代码评审规范:好坏代码应该这样来判断

    谷歌开源了一套代码评审 Code Review 规范 它是谷歌一套通用的工程实战指南 几乎涵盖了所有编程语言与各种类型的项目 这个规范代表了谷歌长期发展以来最佳实战经验的集合 谷歌表示希望开源项目或其他组织能够从这套规范中受益 代码评审 也
  • Docker学习:Docker核心命令

    前言 本讲是从Docker系列讲解课程 单独抽离出来的一个小节 重点介绍八大核心命令和一些常用的辅助命令 比如inspect logs push commit等 如果你想 通过部署Tomcat容器 从查找镜像 到拉取 到运行 最后到移除 来
  • sql server - 将sqlserver安装到虚拟机内

    目录 1 安装 打开虚拟机 1 1 打开vmware 1 2 安装虚拟系统到vmware Windows Server 2016 2 安装SQL server 2014 2 1 把SQL server下载并上传到虚拟机 2 2 安装与配置
  • C++ 虚函数表解析

    C 虚函数表解析 陈皓 http blog csdn net haoel 前言 C 中的虚函数的作用主要是实现了多态的机制 关于多态 简而言之就是用父类型别的指针指向其子类的实例 然后通过父类的指针调用实际子类的成员函数 这种技术可以让父类
  • Web前端学习:jQuery基础 · 小终结【异步处理AJAX】

    目录 一 AJAX介绍 AJAX处理过程 二 AJAX请求 代码演示 案例一 获取txt文本内容 通过页面窗口弹出 案例二 返回json数据 一 AJAX介绍 ajax技术的目的是让javascript发送http请求 与后台通信 获取数据
  • Flask框架-重定向与错误

    在Web服务访问时并不总是能够返回正确的结果 当用户访问了错误的URL 或者传输了错误的请求参数 Web服务就需要返回相关的错误信息进行提示 Flask中针对错误请求的场景提供了相关的API 包括标准错误的响应和标准重定向的响应处理 在We
  • 江波龙深化存储技术优势 紧密结合物联网应用需求创新

    转自 http www chinaflashmarket com Producer Netcom News 142127 云计算 大数据以及移动互联网时代下 全球存储容量以爆发式的速度在增长 根据市场调研机构预测 2020年全球存储容量将从
  • servlet编程会话管理技术

    1 会话管理 浏览器与服务器之间会话过程中产生的会话数据 Cookie特点 1 会话数据放在浏览器端 2 数据类型只能string 而且有大小限制的 3 相对数据存放不安全 Session特点 1 会话数据放在服务器端 服务
  • MES的数据采集方式

    为实现生产车间现场数据的采集 制造业MES系统数据采集方法有手工录入方式和自动化提取采集两大类 主要有以下几类 一 手动方式 1 手工方式 操作员或编程员在MES系统控制面板上 输入特定的触发程序 经DNC服务器的自动翻译 就可得到机床端的
  • Jenkins集成Sonar与Gitlab代码质量检测

    前提默认 安装docker19 与docker compose 安装Jenkins 1 docker compose yaml配置 version 3 services jenkins network mode host 镜像 image
  • 3、Java的If语句与For循环

    一 语句 条件语句 根据不同的条件 执行不同的语句 if if else if else if if else if else if else switch 循环语句 重复执行某些动作 for while do while 1 1 if语句