一、控制结构

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. 攻防世界web进阶区(2)--记一次sql注入

    题目地址:http://111.198.29.45:56094 这是一道sql注入题. 试试1' order by 3#,发现页面显示正常,将3换为4时,页面报错,则说明含有3个字段. 接下来判断输出 ...

  2. INI文件,WritePrivateProfileString()和GetPrivateProfileString()函数----转载

    INI文件就是扩展名为“ini”的文件.在Windows系统中,INI文件是很多,最重要的就是“System.ini”.“System32.ini”和“Win.ini”.该文件主要存放用户所做的选择以 ...

  3. docker-构建建tomcat镜像并启动容器

    1.下载一个tomcat8,解压好改名为tomcat并配置端口为80,删除webapps下的默认的应用,修改tomcat/bin目录下脚本的权限,chmod +x *.sh 2.路径一般放在/usr/ ...

  4. Codeforces 598E:Chocolate Bar

    E. Chocolate Bar time limit per test 2 seconds memory limit per test 256 megabytes input standard in ...

  5. 「NOI2015」荷马史诗

    传送门 Luogu 解题思路 \(k\) 叉 \(\text{Huffman}\) 树板子题,至于最长串最短,只要同样权值的优先考虑深度小的就好了. 细节注意事项 咕咕咕 参考代码 #include ...

  6. Mysql数据库日志,备份及回滚操作

    一.打开二进制日志配置 : 在Windows系统下,对mysql的my.ini的log-bin等进行配置目录位置时,假设要将log-bin的日志配置到D盘的mysqllog的文件为binlog.则可以 ...

  7. bootstrap上下左右条纹边框悬停表格的使用

    懒得找地址:https://jingyan.baidu.com/album/0bc808fc3d88941bd585b94c.html?picindex=1

  8. 在React中随机生成图形验证码

    各个方法 在输入框中定义一个位置存放图形 完整代码 方便复制粘贴 import React, { Component } from 'react'; import styles from './lef ...

  9. 序列化sys随笔补充

    sys是在和python解释器做交互 sys.path----模块查找的顺序 sys.path.append() sys.path.insert()sys.argv---只能在终端执行 sys.arg ...

  10. Ubuntu系统部署tomcat并启用JMX实战案例

    Ubuntu系统部署tomcat并启用JMX实战案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.安装JDK环境 1>.更换阿里云的软件源 [root@zabbix_g ...