一、控制结构

1、控制结构概述

控制结构是控制程序如何运行的特殊的语句结构。控制结构可以分为:顺序控制结构,分支控制结构和循环控制结构。

2、顺序控制结构

除了分支控制结构和循环控制结构之外的语句都是按照顺序控制结构运行的。即:语句由上到下,由左到右依次执行。

3、分支控制结构

a、if判断

  • if语句

if可以实现判断,通过判断的结构来决定是否要执行某段代码。

基本结构:

if(判断条件){

判断条件为真时执行的语句;

执行逻辑为:

  • if..else..语句

基本结构:

if(判断条件){

判断条件为真时执行的语句

else {

     判断条件为假时执行的语句

  }

执行逻辑图

  • if ..else if ...else 语句

基本结构:

if(判断条件1){

判断条件1为真时,执行的语句

}else if(判断条件2){

判断条件1假且判断条件2为真时执行的语句

} else if(判断条件n) {

判断条件n之前的条件都为假且判断条件n为真时执行的语句}

} else {

所有前述判断条件都为假时执行的语句

执行逻辑图为:

示例代码:

public class Demo08{
public static void main(String args[]){
//1.获取数组中的元素
int [] nums = {1,3,5,7,9};
System.out.println(nums[0]);
System.out.println(nums[3]);
System.out.println(nums[4]); //2.获取数组的长度
int [] nums = {1,3,5,7,9};
System.out.println(nums.length); //3.遍历数组 - 普通for循环 int [] nums = {1,3,5,7,9};
for(int i=0;i<nums.length;i++){
System.out.println(nums[i]);
} //4.遍历数组 - 增强for循环
int [] nums = {1,3,5,7,9};
for(int x : nums){
System.out.println(x);
} //5.修改数组中的元素
int [] nums = {1,3,5,7,9};
nums[2] = 100;
for(int x : nums){
System.out.print(x+" ");
}
//6.获取数组中 最大值/最小值
int [] nums = {-23,-5,-3,-234,-2};
if(nums.length > 0){
int max = nums[0];
for(int x : nums){
if(x>max){
max = x;
}
}
System.out.println(max);
}else{
System.out.println("数组为空!");
}
//7.查找指定元素所在的位置
int [] nums = {2,3,65,23,6,3,78,9};
int find = 3;
for(int i=0;i<nums.length;i++){
if(find == nums[i]){
System.out.println("数字"+find+"出现在数组"+i+"位");
}
}
//8.反转数组 0--4 1--3 2 -- 2 3 -- 1 4 --0
int nums [] = {2,3,65,23,6};
int nums2 [] = new int[nums.length];
for(int i=0;i<nums.length;i++){
nums2[nums.length - 1 - i] = nums[i];
}
for(int x : nums2){
System.out.println(x);
}
}
}

b、switch...case..语句

根据值的不同,走不同分支代码。

输入项的值只能是byte、short、char、int,jdk7之后,支持String。

基本结构为:

switch(要检查的数值){

case x:

代码;

case x:

代码;

default:

代码

逻辑执行图:

case用来实现匹配,case是进入的位置,一旦匹配成功,则从当前case位置进入,执行之后的代码,之后的所有的case和default也会被执行。

如果不想之后的case和default执行,需要通过break跳出switch。

4、循环控制结构

a、while循环

while语法结构:

while(判断条件){

执行内容;

改变条件的语句;

循环执行的三要素:判断条件,执行内容,改变条件语句。

执行逻辑图:

b、do...while

语法结构

do{

执行的语句;

改变条件的语句;

}

执行逻辑:

while和do...while的区别,在于while先判断后执行,while中的代码不一定能够执行到,但do...while是先执行后判断,无论如何,do中的代码至少会执行一遍。do...while是可以用while替代的,但while不一定能被do...while替代。

c、for循环

for循环的基本语法:

for(判断条件; 执行大代码; 改变条件的语句){

执行的代码;

执行逻辑为:

for循环相对于while循环,讲循环要素提取到for的小括号中管理,使循环的代码结构更加清晰,便于开发维护。

while和for本子上是等价的,但for结构更加清晰,通常代码也更少,是开发中最常用的循环方式。

for中的三个条件不需要都存在,可以根据需要空置;

for(;;)//等价于死循环

d、break  continue

1)、continue

继续当前循环,一旦循环中遇到continue,则本次循环continue之后的代码不再执行,回到循环开始位置,继续下一次循环。

即为:结束本次循环,继续下一次循环。

2)、break

跳出当前循环;一旦循环中遇到break,则从break位置开始跳出整个循环语句,之后的循环都不再执行。

3)break tag

在多层循环中,可以通过break tag方式,指定在break时要跳出的是哪一层循环。这种写法会造成程序的可阅读性大幅度降低,不推荐使用。

如果想要跳出多层循环,需要一层一层break跳出。或者改变要跳出循环的条件。

public class Demo05{
public static void main(String args[]){
//1.计算1-100的偶数和
/*
int sum = 0;
for(int i=1;i<=100;i++){
if(i%2==0){
sum+=i;
}else{
continue;
}
System.out.println("当前的sum为"+sum);
}
*/ //2.计算1-100的偶数和,如果和大于了500,则不再继续循环
/*
int sum = 0;
for(int i=1;i<=100;i++){
if(i % 2 == 0){
sum += i;
}else{
continue;
}
if(sum > 500){
break;
}
System.out.println(sum);
}
*/ //3.break tag语法
/*
int x = 1;
tag1:for(;x>0;){
System.out.println("外层循环开始。。");
for(int i = 0;i<10;i++){
System.out.println(i);
if(i == 5){
break tag1;
}
}
System.out.println("外层循环结束。。");
}
System.out.println("最外层..");
*/ //4.break tag的替代写法
boolean outBreak = false;
for(;;){
System.out.println("外层循环开始。。");
for(int i = 0;i<10;i++){
System.out.println(i);
if(i == 5){
outBreak = true;
break;
}
}
if(outBreak){
break;
}
System.out.println("外层循环结束。。");
}
System.out.println("最外层..");
}
}

JAVA的控制结构的更多相关文章

  1. java流程控制结构

    一.流程控制分三类 1. 顺序结构 - 程序是从上往下,从左往右执行 2. 选择结构(判断结构) - if语句 A. if(关系表达式){语句体} - 执行流程:成立就执行语句体,不成立就不执行 B. ...

  2. Java程序控制结构

    分支结构 循环结构 跳转结构 一.分支结构 概念:程序从两条或多条路径中选择一条去执行,这种结构称为分支结构 1. if结构 特点: ① 条件表达式的形式可以为: boolean的变量 boolean ...

  3. Java基础01 ------ 从HelloWorld到面向对象

    Java是完全面向对象的语言.Java通过虚拟机的运行机制,实现“跨平台”的理念.我在这里想要呈现一个适合初学者的教程,希望对大家有用. "Hello World!" 先来看一个H ...

  4. java基础笔记(2)----流程控制

    java流程控制结构包括顺序结构,分支结构,循环结构. 顺序结构: 程序从上到下依次执行,中间没有任何判断和跳转. 代码如下: package com.lvsling.test; public cla ...

  5. Java基础01 从HelloWorld到面向对象(转载)

    Java是完全面向对象的语言.Java通过虚拟机的运行机制,实现“跨平台”的理念. "Hello World!" public class HelloWorld{    publi ...

  6. java Vamei快速教程01

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! Java是完全面向对象的语言.Java通过虚拟机的运行机制,实现“跨平台”的理念. ...

  7. Spark案例分析

    一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...

  8. Java 控制结构与方法

    控制结构: 控制结构是对我们程序执行顺序的一种控制,它规定了我们语句块的执行顺序和流程. 分支结构: 关系运算符和逻辑运算符: 关系运算符:== != > >= < <=逻辑运 ...

  9. 【Java 基础篇】【第三课】表达式、控制结构

    这两天再看敏捷开发流程,我这个算是敏捷博客吗? 哈哈o(∩_∩)o package a.b; public class Three { static void Expression() { Syste ...

随机推荐

  1. 吴裕雄--天生自然HADOOP学习笔记:基本环境配置

    实验目的 学习安装Java 学习配置环境变量 学习设置免密码登陆的方法 掌握Linux环境下时间同步的配置 实验原理 1.Java的安装 java是大数据的黄金语言,这和java跨平台的特性是密不可分 ...

  2. ExpandableListActivity的基本使用方法 ,SimpleExpandableListAdapter的基本使用方法

    activity_main.xml: <ExpandableListView android:id="@id/android:list" android:layout_wid ...

  3. Oracle笔记--PL/SQL(Procedure Language & Structured Query Language)

    1.PL/SQL是一种高级数据库程序设计语言,专门用于在各种环境下对Oracle数据库进行访问.该语言集成于数据库服务器中,所以PL/SQL代码可以对数据进行快速高效的处理. 2.PL/SQL是对SQ ...

  4. PHP实现微信网页登陆授权开发

    这篇文章主要介绍了关于PHP实现微信网页登陆授权开发,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 更多PHP相关知识请关注我的专栏PHP​zhuanlan.zhihu.com 微信开 ...

  5. SIAMATIC S7-1200 中通过 Modbus RTU 如何读取地址范围 9999 到 65535 的输入字

    原文地址 说明 除了需要 STEP 7 >= V13 SP1 (TIA Portal) 的软件,还需要 S7-1200 CPU 固件版本 >= V4 (文章编号: 6ES721x-1xx4 ...

  6. 初级入门 --- 认识 WebGL

    WebGL 是什么? WebGL 是一组基于 JavaScript 语言的图形规范,浏览器厂商按照这组规范进行实现,为 Web 开发者提供一套3D图形相关的 API. 这些 API 能够让 Web 开 ...

  7. 深入理解 C# 协变和逆变 (转载)

      深入理解 C# 协变和逆变 msdn 解释如下: “协变”是指能够使用与原始指定的派生类型相比,派生程度更大的类型. “逆变”则是指能够使用派生程度更小的类型. 解释的很正确,大致就是这样,不过不 ...

  8. 设置zabbix (3.4.2)添加监控项,触发器,让CPU使用超过85%就报警:

    zabbix (3.4.2)添加监控项,触发器,让CPU使用超过85%就报警: zabbix自带模板有一个 Template OS Linux模板.这个模板有监控CPU的监控项,如果没有添加一个监控项 ...

  9. Tensorflow 将训练模型保存为pd文件

    前言 保存 模型有2种方法. 方法 1.使用TensorFlow模型保存函数 save = tf.train.Saver() ...... saver.save(sess,"checkpoi ...

  10. msf生成软件

    生成软件后门程序的命令 win7获取 生成内网软件 启动kali上的http服务 systemctl start apache2 开始msf控制台 msfconsole 使用监听模块 并查看配置  s ...