Java基本的程序结构设计 控制流程

控制流程

java的控制流程和C和C++基本一致,只是不能使用goto语句,不过break语句可以带标签,实现从内层循环跳出的目的。标签可以放在for或者while前面。如下:

  1. package com.zjf;
  2.  
  3. import java.io.Console;
  4. import java.util.Scanner;
  5.  
  6. public class Test {
  7.  
  8.    public static void main(String[] args) {
  9.       outer: for(int i=0;i<5;i++){
  10.             for(int j=0;j<5;j++){
  11.                 System.out.println("i="+i+"j="+j);
  12.                 if(j==3){
  13.                     break outer;
  14.                 }
  15.             }
  16.         }
  17.     }
  18. }

块作用域:

java是块作用域,这点和js不一样。

while循环

while循环有两种:

while()

{

//do some thing

}

do

{

//do some thing

}

while()

for循环

for(初始化;继续循环的条件,更新)

虽然如此,不建议在for循环里有复杂逻辑,最好是对变量的初始化和大小判断这种简单逻辑。

如果在循环重视使用浮点数进行检测,结果可能出现死循环。如下写法会死循环

  1. package com.zjf;
  2.  
  3. public class Test {
  4.  
  5.    public static void main(String[] args) {
  6.       for(double d = 0D; d != 1D;d+=0.1D)
  7.       {
  8.          System.out.println(d);
  9.       }
  10.     }
  11. }

我们换一种方式看看输出:

  1. package com.zjf;
  2.  
  3. public class Test {
  4.  
  5.    public static void main(String[] args) {
  6.       for(double d = 0D; d < 1D;d+=0.1D)
  7.       {
  8.          System.out.println(d);
  9.       }
  10.     }
  11. }

输出:

0.0

0.1

0.2

0.30000000000000004

0.4

0.5

0.6

0.7

0.7999999999999999

0.8999999999999999

0.9999999999999999

多重选择:switch语句

switch语句只能作用在整形和枚举上。不能测试字符串,也不能测试浮点型。

switch语句中的多个case不能重复,所以只能满足一个,不可能满足多个。但是如果你不在每个case后面加上break,就会继续走到default。如下:

  1. package com.zjf;
  2.  
  3. public class Test {
  4.  
  5.    public static void main(String[] args) {
  6.       int i = 3;
  7.       switch (i) {
  8.       case 1:
  9.          System.out.println(1);
  10.       case 2:
  11.          System.out.println(2);
  12.       case 3:
  13.          System.out.println(3);
  14.       default:
  15.          System.out.println("default");
  16.       }
  17.     }
  18. }

结果:

3

default

作者在书上说,有可能触发多个case分支,如果case语句没有加上break,那么就会接着执行下一个case分支,所以要尽量不要使用break。这段话说的没有错,是可以触发多个分支,但是语法上要求了case的键不能重复,否则就会编译报错。那么java这么设计的目的何在呢,我猜测,如果不加上break,那么每个case都会走到default,这样就可以在default中加上一些公共逻辑。

时间: 2024-10-25 17:43:03

Java基本的程序结构设计 控制流程的相关文章

MVC思想-程序的控制流程-Struts2和SpringMVC黑马流程图

1.初探 javaEE就是搞清前后台是怎么交互的,而控制那个交互的就被称为是:C:控制器 C负责协调调度程序如何执行的,M负责读数据的处理,比如说:验证输入的密码是否正确,是否 有这个权限.V就简单了,View视图 2.Struts2的MVC过程 最经典的一个例子:登录验证: 然后这个数据就被C负责往哪走: 上面有个action=login.action web.xml就相当于是一个控制器 通过这个.xml找到处理数据的那个类 MVC中的C MVC中的M MVC中的C 这就是MVC中的V ---

Java基本的程序结构设计 大数操作

大数操作 BigInteger 不可变的任意精度的整数.所有操作中,都以二进制补码形式表示 BigInteger(如 Java 的基本整数类型).BigInteger 提供所有 Java 的基本整数操作符的对应物,并提供 java.lang.Math 的所有相关方法.另外,BigInteger 还提供以下运算:模算术.GCD 计算.质数测试.素数生成.位操作以及一些其他操作. 个人理解:可以理解为BigInteger内部维护了一个int数组,这个数组可以无限大.java在对BigInteger进

Java基本的程序结构设计 基本类型的输入输出

读取输入: java.util.Scanner 一个可以使用正则表达式来分析基本类型和字符串的简单文本扫描器. 了解: Scanner 使用分隔符模式将其输入分解为标记,默认情况下该分隔符模式与空白匹配.然后可以使用不同的 next 方法将得到的标记转换为不同类型的值. 例如,以下代码使用户能够从 System.in 中读取一个数: Scanner sc = new Scanner(System.in); int i = sc.nextInt(); 再看一个例子,以下代码使 long 类型可以通

Java基本的程序结构设计 字符类型

字符型 从概念上讲,java的字符型就是unicode字符序列. 不可变: 一旦定义了一个字符串,就没有方法修改它.java没有提供修改字符串的方法,对于C程序来说,字符串相当于是个数组,你可以改变任何一个下标的值.但是Java不可以. 如果要对java字符串修改下标,只能新建一个字符串,然后通过substring和拼接来实现,这样一定程度上效率很低. 但是java设计者认为字符串修改操作很少,对于字符串的操作,大多是比较,和合并等操作.所以java设计者将字符串设置为不可变,然后实现了共享.

Java基本的程序结构设计 数组

声明数组: int[] a; int a[]; 两种方式.一般选择第一种,比较一目了然. 初始化,必须指定长度: int[] a = new int[10]; int[] a = {1,2,3}; 初始化: package com.zjf;   import java.util.Arrays;   import com.zjf.spring.mybatis.model.Person;   public class Test {      public static void main(Strin

JAVA——控制流程

在Java中,都要声明一个贷main()方法的公用类.程序从main()方法的第一条语句开始执行,随后一条一条地执行后续的语句,直到到达程序的终点 — main()方法的末尾.然而,在程序设计时,我们经常需要改变程序的控制流程,也就是语句的执行顺序.有三种基本技术可以改变程序的控制流程: 1.调用方法.调用方将导致控制流程离开当前方法当前方法,转移到被调用的方法.例如,当我们调用println(),控制程序离开main(),转到println(),并且在执行完成时返回main()方法. 2.选择

04 Java基础 -控制流程语句

/* 控制流程语句: 语句: 使用分号分隔的代码就是一个语句. 顺序语句: 按照代码顺序从上往下执行所有的代码就是顺序语句 ; 也是一个语句 */ class Demo1 {     public static void main(String[] args){     /*     int i = 10;  //声明变量的语句         ;//空语句         System.out.println("Hello World!"); //输出语句             *

java基础-控制流程语句

一 前言 周末睡觉好舒服,都不想动了,就想睡睡,晒晒太阳,作者劳碌命还是过来写文章了.基础系列文章已经已经出到控制流程,感觉也挺快的,我很自信全网没都多少系列文章能有我这基础系列写的这么好,易于初学者理解并且知识体系齐全觉得文章不错的可以关注一下作者.控制流程语句的概念其实作者感觉是从工程流程图里面转换过来的,比如是非选择啊,循环执行啊之类都可以用流程图来讲述咯!!!!!! 二 if - else 语句 2.1 if -else if (如果)- else(否则) 在之前的基础系列三元运算符中有

Java基础语法之控制流程

Java基础语法之控制流程 语言的流程控制提供了对程序步骤的基本方法. 三大流程控制语句:顺序.选择.循环 复合结构 复合结构是以一个区块为单位的,由"{"开始"}"结束.复合语句会为局部变量创建一个作用域,该作用域会成为程序的一部分.在这个作用域中变量能够被创建使用,如果这个变量在这个作用域外使用,会发生程序错误.复合结构内可以嵌套多个复合结构. 判断结构 判断结构会根据不同的条件结果执行不同的代码块. If结构 if结构中的条件结构是一个布尔值,在条件满足也就是