在Java中,使用条件语句和循环结构确定控制流程,在本文中,主要包括块作用域、条件语句、循环结构、中断循环这四部分。

一、块作用域

块,也叫复合语句,是指由一对大括号括起来的若干条Java语句。块决定了变量的作用域。一个块可以嵌套多个块。

二、条件语句

如果判断超过三层,建议拆分开来写,这样更加清晰。

package javalearningday04;

/**
* 条件语句
* @author 小川94
* @date 2018年1月31日
*/
public class IfElseDemo { public static void main(String[] args) {
testMethod(78);
} /**
* 判断成绩
*/
public static void testMethod(int score) {
if (score < 0) {
System.out.println("请传入正确的分数!");
} else {
if (score >= 90 && score <= 100) {
System.out.println("成绩优秀");
} else if (score >= 80) {
System.out.println("成绩良好");
} else if (score >= 70) {
System.out.println("成绩一般");
} else if (score >= 60) {
System.out.println("成绩及格");
} else {
System.out.println("不及格");
}
}
}
}

三、循环结构

3.1 for循环

package javalearningday04;

/**
* for循环的用法
* @author 小川94
* @date 2018年1月31日
*/
public class ForDemo { public static void main(String[] args) {
testMethod();
testMethod2();
} /**
* 计算1,2,3...,100的和
*/
public static void testMethod() {
int sum = 0;
for (int i=1; i<101; i++) {
sum += i;
}
System.out.println(sum); //sum = 5050
} public static void testMethod2() {
String[] strArray = {"小明","小马","小王"};
// foreach循环遍历
for (String str : strArray) {
System.out.println(str); // 依次打印 小明 小马 小王
}
// 两种写法的输出结果都是一样的
for (int i=0; i<strArray.length; i++) {
System.out.println(strArray[i]); // 依次打印 小明 小马 小王
}
} }

3.2 do{...}while()循环

先执行,再判断。无论while中的条件是否成立,都会执行一次循环体。

package javalearningday04;

/**
* do{}while();的用法
* @author 小川94
* @date 2018年1月31日
*/
public class DoWhileDemo { public static void main(String[] args) {
testMethod();
testMethod2();
} /**
* 计算1,2,3...,100的和
* 先执行,后判断
*/
public static void testMethod() {
int i = 1;
int sum = 0;
do{
sum += i;
i++;
}while(i<101);
System.out.println(sum); // sum = 5050
System.out.println(i); // i = 101
} /**
* do{}while();的循环结构,至少会执行一次循环体
* 在while中的条件不成立时,已经执行了一次循环体
*/
public static void testMethod2() {
int i = 1;
int sum = 0;
do{
sum += i;
i++;
}while(i<1);
System.out.println(sum); // sum = 1
System.out.println(i); // i = 2
}
}

3.3 while(){...}循环

先判断,再执行。只有条件成立,才会进入循环体。

package javalearningday04;

/**
* while(){}的用法
* @author 小川94
* @date 2018年1月31日
*/
public class WhileDemo { public static void main(String[] args) {
testMethod();
testMethod2();
} /**
* 计算1,2,3...,100的和
* 先判断,后执行
*/
public static void testMethod() {
int i = 1;
int sum = 0;
while( i<101 ){
sum += i;
i++;
}
System.out.println(sum); // sum = 5050
System.out.println(i); // i = 101
} /**
* 只有while()中的条件成立时,才会执行循环体
* 如果while()中的条件永久为true,则会进入死循环,对程序会造成非常严重的后果,
* 开发中需要严格判断循环条件!避免出现死循环
*/
public static void testMethod2() {
int i = 1;
int sum = 0;
while( i<1 ){
sum += i;
i++;
}
System.out.println(sum); // sum = 0
System.out.println(i); // i = 1
} }

3.4 独特的switch{}

package javalearningday04;

/**
* switch{}的用法
* @author 小川94
* @date 2018年1月31日
*/
public class SwitchCaseDemo { public static void main(String[] args) {
testMethodWithInt(3);
testMethodWithByte((byte)3);
testMethodWithChar((char)3);
testMethodWithShort((short)3);
testMethodWithString("MONDAY");
testMethodWithEnum(SIZE.MEDIUM);
testSwitchWithoutBreak("MONDAY");
} // 支持int
public static void testMethodWithInt(int num) {
switch (num) {
case 0:
System.out.println("num等于0");
break;
default:
System.out.println(num);
break;
}
} // 支持byte
public static void testMethodWithByte(byte num) {
switch (num) {
case 0:
System.out.println("num等于0");
break;
default:
System.out.println(num);
break;
}
} // 支持char
public static void testMethodWithChar(char num) {
switch (num) {
case 0:
System.out.println("num等于0");
break;
default:
System.out.println(num);
break;
}
} // 支持short
public static void testMethodWithShort(short num) {
switch (num) {
case 0:
System.out.println("num等于0");
break;
default:
System.out.println(num);
break;
}
} // 支持字符串
public static void testMethodWithString(String str) {
switch (str) {
case "MONDAY":
System.out.println("是星期一");
break;
default:
System.out.println(str);
break;
}
} public enum SIZE{
// 小号
SMALL,
// 中号
MEDIUM,
// 大号
LARGE;
} public SIZE size; public SwitchCaseDemo(SIZE size) {
this.size = size;
}
// 支持枚举类型
public static void testMethodWithEnum(SIZE size) {
switch (size) {
case SMALL:
System.out.println("是小号");
break;
case MEDIUM:
System.out.println("是中号");
break;
case LARGE:
System.out.println("是大号");
break;
default:
System.out.println("没有其他号了");
break;
}
} // 不写break语句,则每种情况都会执行
public static void testSwitchWithoutBreak(String str) {
switch (str) {
case "MONDAY":
System.out.println("吃包子");
case "SUNDAY":
System.out.println("吃面条");
default:
System.out.println("喝粥");
}
} // 不支持long类型的数据
/*public static void testMethodWithLong(long num) {
switch (num) {
case 0:
System.out.println("num等于0");
break;
default:
System.out.println(num);
break;
}
}*/ // 不支持double类型的数据
/*public static void testMethodWithDouble(double num) {
switch (num) {
case 0:
System.out.println("num等于0");
break;
default:
System.out.println(num);
break;
}
}*/
}

四、中断循环

中断循环需要用到两个关键字,一是continue,另一个是break。

continue是指将其后面的执行语句跳过,进入下一次新的循环,整个循环结构是还在运行的,没有终止。

break是指结束掉整个循环结构,开始执行整个循环结构的后面的代码。

package javalearningday04;

/**
* continue、break的用法
* @author 小川94
* @date 2018年1月31日
*/
public class ContinueBreakDemo { public static void main(String[] args) {
testContinue();
testBreak();
} /**
* 求数组中正数的和
* continue:在执行完continue语句后,其后的代码都不再执行,
* 结束本次循环,进入下一次循环,整个循环结构还在继续执行
*/
public static void testContinue() {
int[] arr = {1,2,3,4,-5,6};
int sum = 0;
for(int i=0; i<arr.length; i++){
if (arr[i]<0) { //过滤数组中的负数
continue;
} else {
sum += arr[i];
}
}
// 跳过-5,计算1+2+3+4+6的和
System.out.println(sum); // sum = 16
} /**
* break:在执行完break语句后,其后的代码都不再执行,
* 结束整个循环结构,
*/
public static void testBreak() {
int[] arr = {1,2,3,4,-5,6};
int sum = 0;
for(int i=0; i<arr.length; i++){
if (arr[i]<0) {
break; // 与上面的代码一样,只是将continue换成了break
} else {
sum += arr[i];
}
}
// 只会计算1+2+3+4的和
System.out.println(sum); // sum = 10
}
}

上面的代码都上传至了GitHub,地址是https://github.com/XiaoChuan94/javalearning/tree/master/javalearningday04,有需要的可以去下载观看,如果喜欢就给个star吧!如有不足,欢迎下方留言交流。

文章首发于我的个人公众号:悦乐书。喜欢分享一路上听过的歌,看过的电影,读过的书,敲过的代码,深夜的沉思。期待你的关注!

公众号后台输入关键字“Java学习电子书”,即可获得12本Java学习相关的电子书资源,如果经济能力允许,还请支持图书作者的纸质正版书籍,创作不易。

Java入门(五):控制流程的更多相关文章

  1. JAVA入门基础及流程控制

    JAVA入门基础及流程控制 数据类型 位 存储单位 eg:0001 0011 八位 字节 byte 处理数据单位 一字节等于八位 eg:1b=0011 0001 类变量: static int num ...

  2. java(运算符,控制流程语句,函数 )

    运算符 数据类型转换: 小数据类型-------->大数据类型(自动类型转换) 大数据类型--------->小数据类型(强制类型转换) 强制类型转换的格式: 小数据类型  变量名 = ( ...

  3. Java入门教程三(流程控制)

    概述 程序有 3 种结构:顺序结构.选择结构和循环结构.分别为:if elseswitch case,while与do while,for, foreach,return,break ,continu ...

  4. 【Java】【控制流程】

    #栗子 丢手帕 & 菱形 & 金字塔import java.io.*;import java.util.*; public class Test_one { public static ...

  5. java语句的控制流程

    if(布尔表达式 ){ 程序执行语句1 }else { 程序执行语句2 } while(布尔表达式){ 程序执行语句 } do{ 程序执行语句 }while(布尔表达式); for(初始化语句,条件语 ...

  6. 【Thinking in Java, 4e】控制流程执行

    p46~p75: [迭代] 1.Java不允许将数字作为布尔值用. 1.有点意思的小程序WhileTest. public class WhileTest { static boolean condi ...

  7. 【JAVA零基础入门系列】Day8 Java的控制流程

    什么是控制流程?简单来说就是控制程序运行逻辑的,因为程序一般而言不会直接一步运行到底,而是需要加上一些判断,一些循环等等.举个栗子,就好比你准备出门买个苹果,把这个过程当成程序的话,可能需要先判断一下 ...

  8. java基础-控制流程语句

    一 前言 周末睡觉好舒服,都不想动了,就想睡睡,晒晒太阳,作者劳碌命还是过来写文章了.基础系列文章已经已经出到控制流程,感觉也挺快的,我很自信全网没都多少系列文章能有我这基础系列写的这么好,易于初学者 ...

  9. 003 01 Android 零基础入门 01 Java基础语法 01 Java初识 03 Java程序的执行流程

    003 01 Android 零基础入门 01 Java基础语法 01 Java初识 03 Java程序的执行流程 Java程序长啥样? 首先编写一个Java程序 记事本编写程序 打开记事本 1.wi ...

随机推荐

  1. Ansible基础认识及安装使用详解(week5_day1_part1)--技术流ken

    Ansible简介 ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置.批量 ...

  2. JavaScript 系列博客(三)

    JavaScript 系列博客(三) 前言 本篇介绍 JavaScript 中的函数知识. 函数的三种声明方法 function 命令 可以类比为 python 中的 def 关键词. functio ...

  3. html5入门:教你用canvas写一个时钟

    今天的时间比较充裕,心血来潮,为大家分享一个html5的小例子,希望对刚学html5或者是没学html5正准备学的“童鞋们”展示一个小案例,希望对你们的学习有帮助!高手嘛!请跳过吧! 好了,闲话少数, ...

  4. 《C#并发编程经典实例》学习笔记-第一章并发编程概述

    并发编程的术语 并发 同时做多件事情 多线程 并发的一种形式,它采用多个线程来执行程序. 多线程是并发的一种形式,但不是唯一的形式. 并行处理 把正在执行的大量的任务分割成小块,分配给多个同时运行的线 ...

  5. Web网站配置Gzip,压缩js css文件

    启用apache的gzip 找到httpd.conf,打开文件找到对mod_deflate的注释 #LoadModule deflate_module modules/mod_deflate.so 去 ...

  6. asp.net core webapi 生成导出excel

    /// <summary> /// 下载订单 /// </summary> /// <param name="model"></param ...

  7. Linq中的Select与Select many

    Select与Select Many 之前在项目中查询数据库中的数据,都是通过sql语句来查询的,但是随着时代的发展,微软在.Net Framework 4.5版中推出的一个主要的特性——LINQ. ...

  8. frp 初探

    条件: (1) 服务器端要有公网 IP (2) 客户端能上网,能够访问服务器的公网 IP 下载 https://github.com/fatedier/frp/releases 根据服务器和客户端的操 ...

  9. [nodejs] nodejs开发个人博客(二)入口文件

    错误处理中间件 定义错误处理中间件必须使用4个参数,否则会被作为普通中间件 /*错误处理器*/ application.use(function(err,req,res,next){ console. ...

  10. vim 的:x和:wq

    vim是Unix/Linux系统最常用的编辑器之一,在保存文件时,我通常选择":wq",因为最开始学习vim的时候,就只记住了几个常用的命令:也没有细究命令的含义. 但是,最近我在 ...