一、控制结构

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. c-指针的理解

    c-指针的理解 最近在学习MFC,其中的代码有点看的不是很深刻,究其原因还是对c语言中的指针理解的不是很好,下面详细的给大家介绍一下指针,如有不当之处,欢迎各位读者指正. 一.指针的概念 C语言里,变 ...

  2. 如何安装第三方模块#Python

    从书上看到用pip install XXX 就可以直接安装模块.下面就是具体操作 1.添加环境变量D:\Python\Scripts\pip.exe 2.打开cmd切换到python安装目录 3.pi ...

  3. 课堂测试用javaweb写一个注册界面,并将数据保存到后台数据库(部分完成)

    今天我到现在为止,也只完成了数据库的连接,还没有写前台的javascript的检查输入的代码,打算周四前完成. 代码如下: package Dao; import java.sql.Connectio ...

  4. 8核AMD Zen加持:微软Surface这回血拼

    微软定于10月2日在纽约举办Surface新品发布会,几乎全线消费级产品都将更新,比如15英寸Surface Laptop 3. 最新爆料称,15寸Surface Laptop 3预计一口气推出6款型 ...

  5. 配置<welcome-file>直接访问请求

    方法一.配置welcome-file-list和servlet-mapping <!-- 将默认欢迎页配置为要访问的controller路径 --><welcome-file-lis ...

  6. Eclipse - 常见问题 - Refresh

    有时候项目代码正确但运行后出现异常,是因为eclipse没有刷新 (如jar包添加了但没用),比较脑慢. 解决方法: clean缓存,或者要多点几次Refresh,或者重启 eclipse.

  7. 小程序父子组件onLoad和Created之间的问题

    今天开发日历插件时,遇到了以下问题: 因为需要在父组件的onLoad里加载接口从而得到每一天的房间数据,然后将数据存进小程序缓存. 接着在子组件里 获取小程序缓存来得到父组件传来的房间数据,在子组件里 ...

  8. wumii 爆款总结经验

    在正式创办无秘之前,我们反思前几次创业失败的教训,深刻领悟两点: 第一,内容推荐的精准度取决于平台收集用户数据的能力,如果没有用户行为数据,产品无法做内容推荐,而通过简单的新闻排序,延长用户浏览单篇文 ...

  9. 使用JavaScript和Canvas打造真实的雨滴效果

    使用JavaScript和Canvas打造真实的雨滴效果 寸志 · 1 年前 我最近搞了一个有趣的项目——rainyday.js .我认为这个项目并不怎么样,而且,事实上这是我第一次尝试接触一些比弹窗 ...

  10. maven intall 命令用法

    作用:将自定义maven项目  打成maven依赖存放到本地库,我们可以在另一个项目pom文件中加入相应依赖,刷新mavne即可将其加入项目中使用 使用说明:win+R 打开命令窗口,将目录切换至项目 ...