一、控制结构

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. jmeter分布式linux负载机,windows主控机

    1.将参数化文件上传到linux服务器,放在linux上jmeter的bin路径下 2.设置server.rmi.ssl.disable=true 分别修改主控机和负载机的jmeter.propert ...

  2. leetcode LRU缓存机制(list+unordered_map)详细解析

    运用你所掌握的数据结构,设计和实现一个  LRU (最近最少使用) 缓存机制.它应该支持以下操作: 获取数据 get 和 写入数据 put . 获取数据 get(key) - 如果密钥 (key) 存 ...

  3. web应用基础架构

    1.web中间件 中间件是一类连接软件组件和应用的计算机软件,它包括一组服务.以便运行在一台或多台服务器上的多个软件通过网络进行交互.该技术所提供的互操作性,推动了一致分布式体系架构的演进,该架构通常 ...

  4. 第1节 storm编程:8、storm的分发策略

    8. Storm的分发策略 Storm当中的分组策略,一共有八种: 所谓的grouping策略就是在Spout与Bolt.Bolt与Bolt之间传递Tuple的方式.总共有八种方式: 1)shuffl ...

  5. 使用redis集群中遇到的错误

    一. 上述错误的原因: 1.在redis服务器上关闭防火墙 2.可能是host写错了 上述错误的原因: 配置文件中jedisClient代表的是单机版的redis,但是在类中转化的时候转化的是集群版

  6. Python入门知识总结【新手必学】

    Python 基础学习输入和输出list 和 tuple条件判断循环dict 和 set感觉python这门语言用途较广,先熟悉下其语法.PS:另外很多人在学习Python的过程中,往往因为没有好的教 ...

  7. linuxshell命令学习1——用户、文件和目录操作

    1.cmd(command) --help #查找这个命令相关的帮助 2.切换用户 2.1 sudo 让普通用户可以执行root命令,暂时切换到超级用户(root)用户模式 2.1.1 su  切换到 ...

  8. 一、 SVN概述&工作方式&恢复历史版本

    What why how 1 什么是SVN?作用是什么? SVN(SubVersion),版本控制系统.采用了分支管理系统,用于多人共同开发一个项目,共用资源的目的. 2 为什么要有SVN? 解决代码 ...

  9. LeetCode347:返回频率前K高的元素,基于优先队列实现

    package com.lt.datastructure.MaxHeap; import java.util.LinkedList; import java.util.List; import jav ...

  10. 51nod 1378:夹克老爷的愤怒 很好玩的一道树状dp

    1378 夹克老爷的愤怒 基准时间限制:1 秒 空间限制:131072 KB 分值: 80 难度:5级算法题  收藏  取消关注 夹克老爷逢三抽一之后,由于采用了新师爷的策略,乡民们叫苦不堪,开始组织 ...