一、控制结构

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. CNN算法详细分析

    test_example_CNN.m train_x = double(reshape(train_x',28,28,60000))/255; test_x = double(reshape(test ...

  2. 树莓派中实现ll命令

    用管了centos的童鞋们,到了一个没有ll命令的环境里,那是多么的痛苦,在baidu后,将实现方法记录如下 方法一: echo "alias ll='ls -l'" >&g ...

  3. [Educational Codeforces Round 81 (Rated for Div. 2)]E. Permutation Separation(线段树,思维,前缀和)

    [Educational Codeforces Round 81 (Rated for Div. 2)]E. Permutation Separation(线段树,思维,前缀和) E. Permuta ...

  4. 「SCOI2010」幸运数字

    传送门 Luogu 解题思路 首先构造出所有的幸运数字. 然后考虑一个幸运数字会产生多少贡献. 对于一个数 \(x\),它在区间 \([l,r]\) 内的倍数的个数为 \(\lfloor \frac{ ...

  5. 一个自己实现的Vector(只能处理基本类型数据)

    一个自己实现的Vector(只能处理基本类型数据) string 类型不行 bool char* int double float long long 等基本s类型可用 使用模板类实现.底层为数组实现 ...

  6. ROS-4 : ROS节点和主题

    依照<ROS-3 : Catkin工作空间和ROS功能包>,创建catkin工作空间,并在起src下创建功能包ros_demo_pkg,依赖项为roscpp.std_msgs.action ...

  7. 2.13 阶段实战 使用layui重构选课系统

    一.说在前面   昨天  学习表单校验插件validate,并使用ajax 自定义校验规则   今天 使用layui重构选课系统 二.题目要求 1.项目需求: 本项目所开发的学生选课系统完成学校对学生 ...

  8. Mac 终端启动AVD模拟器

    cd ~/Library/Android/sdk/tools ./emulator -list-avds // 列出av列表 Nexus_5X_API_26 ./emulator @Nexus_5X_ ...

  9. 【capstone/ropgadget】环境配置

    具体环境配置可参考 https://github.com/JonathanSalwan/ROPgadget/tree/master 作者给出的安装方式 但具体配置中出现了问题,如引用时出现如下错误: ...

  10. LOJ #10002. 喷水装置

    题目 裸的贪心. 基本思想见图: Code: #include<iostream> #include<cstdio> #include<cstring> #incl ...