java 控制流
一:
块作用域
块(即复合语句):是指由一对花括号括起来的若干条简单的java语句。块决定了变量的作用域,一个块可以嵌套在另一个块中,如下:
 public class print_In {
     public static void main(String[] args){
     int a=2;
         {
             int a=3;
             int b=3;
         }
     }
 }
需要注意:在一个块里,定义个变量,不能再嵌套的块里在定义相同的变量,如果定义会报错。

二:if语句
语法形式和js是一样:if(){}else if (){} ......else{}
java里的if语句不同于python里的if语句,python里可以直接用数组、字符串、字典等来充当条件,但是在java里只能使用表达式直接可以判断布尔值,才可以做判断,否则会报错。
 public class print_In {
     public static void main(String[] args){
     int a=2;
     int v=4;
     if (a<4){
         System.out.println("OK");
     }else {
         System.out.println("bad");
     }
     }
 }
错误的写法:
 public class print_In {
     public static void main(String[] args){
     int a=2;
     int v=4;
     if (a){
         System.out.println("OK");
     }else {
         System.out.println("bad");
     }
     }
 }

for循环:
语法:for (){} 通过计数器或者变量的值修改。来结束for循环,()表达式里包含三部分,初始化一个变量并赋值,变量的布尔比较,变量的自增。目的是循环的跳出。变量的作用域,作用域循环体。
如下:
 public class print_In {
     public static void main(String[] args) {
         int i;
         for(i=2;i<4;i++){
             System.out.println(i);
         }
         System.out.printf("i value is %s ",i);
     }
 }
如果main方法想使用for循环之后的变量值,需要在for循环外定义这个变量。才可以被外部调用!
while 语句:
形式:while(condition){statement} 这种形式,当condition 成立的时候,才运行块代码,如果不成立将不会运行。
 public class  print_In{
     public  static  void  main(String[]  args){
         int i=3;
         while (i<6){
             System.out.println(i);
             i+=1;
         }
     }
 }
while 循环另一个形式: do {statement}while(condition)会运行一次块代码,在做判断。
 public class  print_In{
     public  static  void  main(String[]  args){
         int i=3;
         do {
                 System.out.println(i);
         }while (i<3);
     }
 }

这种场景比较多见的是:交互的时候,需要输出一定条件,然用户去做判断。
switch 多个选项:(比较少用)
当我们做多个判断的时候,使用if/else的时候显得很臃肿,可以使用switch case语句来判断。结构:
switch(var){case var:statement break;case var:statement break。。。。。。}注意加break 避免执行多个case分支。
 import java.util.Scanner;
 public class  print_In{
     public  static  void  main(String[]  args){
         Scanner scan= new Scanner(System.in);
         System.out.println("Please entre your choice?");
         int  chocie=scan.nextInt();
         switch (chocie){
             case 1:
                 System.out.printf("you have entre %d",chocie);
                   break
             case 2:
                 System.out.printf("you have entre %d",chocie);
                   break
             case 3:
                 System.out.printf("you have entre %d",chocie);
                    break
         }
     }
 }
需要注意的是case后面跟的choice的值!!!
如果用户没有输入没有匹配的值,在if语句中我们使用else,在switch里用default子语句来判断未匹配到选项值的处理。default子句也需要break。
 import java.util.Scanner;
 public class  print_In{
     public  static  void  main(String[]  args){
         Scanner scan= new Scanner(System.in);
         System.out.println("Please entre your choice?");
         int  chocie=scan.nextInt();
         switch (chocie){
             case 1:
                 System.out.printf("you have entre %d",chocie)
                   break;
             case 2:
                 System.out.printf("you have entre %d",chocie)
                   break;
             case 3:
                 System.out.printf("you have entre %d",chocie)
                   break;
              default:
                  System.out.printf("bad input");
                break
         }
     }
 }

四:中断流程
在java中,和python一样也有break和continue,但是java中的break 可以带标签进行退出。而python 不可以。
 public class loop {
     public static  void main(String[] args){
         int i=2;
         while (i<5){
             System.out.printf("i is %d \n",i);
             if (i==4) break;
             i+=1;
         }
     }
 }
其中if(condition) break;为缩写,也可以写下面这样:
 public class loop {
     public static  void main(String[] args){
         int i=2;
         while (i<5){
             System.out.printf("i is %d \n",i);
             if (i==4){
                 break;
             }
             i+=1;
         }
     }
 }
带标签的break tag ,其中tag需要用冒号,声明。指定跳到那个标签。如下:
 public class loop {
     public static  void main(String[] args){
         int i=3;
         break_tag:
         while ( i<6){
             System.out.printf("i is %d\n" ,i);
             for (int a=2;a<6;a++){
                 if (a==4){
                     break  break_tag;
                 }
                 System.out.printf("a is %d\n",a);
             }
             i++;
         }
     }
 }
注意语法:tag后面是冒号: ,紧随循环体,否则报没有块!

跳到tag之后,不会再次执行跳出的块代码(循环或者块的代码),执行后面的语句。
 public class loop {
     public static  void main(String[] args){
         int i=3;
         break_tag:
         while ( i<6){
             System.out.printf("i is %d\n" ,i);
             for (int a=2;a<6;a++){
                 if (a==4){
                     break  break_tag;
                 }
                 System.out.printf("a is %d\n",a);
             }
             i++;
         }
         System.out.printf("OK");
     }
 }

tag的位置。tag可以跳出多个循环。但是break只能跳出块,不能跳入块!
当然了,不仅仅是loop情况,也可以是if等语句的块代码。
 public class loop {
     public static  void main(String[] args){
         int i=3;
             for (int a=2;a<6;a++){
                 break_tag:
                 if(i >0){
                 if (a==4){
                     break  break_tag;
                 }
                 System.out.printf("a is %d\n",a);
             }
                 i++;
             }
     }
 }
输出结果:
a is 2
a is 3
a is 5
continue 和python 里的continue 意思是一样。就是跳出循环的,回到循环首部。
当然continue也有标签的意思。指定跳到匹配的标签的循环首部。
java 控制流的更多相关文章
- java控制流
		目录 1.引用数据类型 2.流程控制语句 2.1 条件控制语句if 2.2 if语句与三元运算符的互换 2.3 循环语句 2.4 循环嵌套 2.5 跳转语句 2.6 选择结构switch 3.猜数字案 ... 
- java控制流学习
		java流程控制学习 Scanner对象 概念 1.通过Scanner类实现程序和人的交互,通过它获取到用户的输入.java.util.Scanner是java5的特征. 我们可以通过Scanner类 ... 
- HowToDoInJava Java 教程·翻译完成
		原文:HowToDoInJava 协议:CC BY-NC-SA 4.0 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远. ApacheCN 学习资源 目录 核心 Java 教程 什 ... 
- Dart编程语言入门
		Dart基础入门语法介绍,详细说明可以查看相关视频<Dart编程语言入门>. 变量与常量 变量 1.使用 var 声明变量,默认值为 null var a;//null a = 10; 2 ... 
- Spark案例分析
		一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ... 
- java基础-控制流语句
		浏览以下内容前,请点击并阅读 声明 一般情况下,代码的执行按照从上到下的顺序,然而通过加入一些判断,循环和跳转语句,你可以有条件地执行特定的语句. 接下来分三部分介绍Java的控制流语句,他们是判断语 ... 
- 黑马程序员——JAVA基础之程序控制流结构之判断结构,选择结构
		------- android培训.java培训.期待与您交流! ---------- 程序控制流结构:顺序结构:判断结构:选择结构:循环结构. 判断结构:条件表达式无论写成什么样子,只看最终的结构是 ... 
- 《深入Java虚拟机学习笔记》- 第16章 控制流
		<深入Java虚拟机学习笔记>- 第16章 控制流 
- Java使用条件语句和循环结构确定控制流
		与任何程序设计语言一样,Java使用条件语句和循环结构确定控制流.本文将简单讲解条件.循环和switch. 一.块作用域 块(block),即复合语句.是指由一对大括号括起来的若干条简单的Java语句 ... 
随机推荐
- Java8简明学习之Lambda表达式
			函数式接口 就是一个有且仅有一个抽象方法,但是可以有多个非抽象方法的接口,函数式接口可以被隐式转换为lambda表达式. 之前已有的函数式接口: java.lang.Runnable java.uti ... 
- HDU3085(KB2-G 双向bfs)
			Nightmare Ⅱ Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ... 
- HTML的代码规范
			一.语法 用两个空格来代替制表符(tab) 2.嵌套元素应当缩进一次(即两个空格). 3.对于属性的定义,确保全部使用双引号,绝不要使用单引号. 4.不要省略可选的结束标签(例如,</li> ... 
- jQuery源码学习笔记二
			//添加实例属性和方法 jQuery.fn = jQuery.prototype = { // 版本,使用方式:$().jquery弹出当前引入的jquery的版本 jquery: core_vers ... 
- springboot项目的重定向和转发
			下面是idea软件创建的项目目录,这里总结了一下转发与重定向的问题,详解如下. 首先解释一下每个文件夹的作用,如果你是用的是idea创建的springboot项目,会在项目创建的一开始resource ... 
- php5.5过渡--变量
			单纯的定义变量,如: $usernumber = $_POST['usernumber']; 会出现警告: Notice: Undefined index: usernumber in ... 规范问 ... 
- 创建vue项目 webpack+vue
			# 全局安装 vue-cli $ npm install -g vue-cli # 创建一个基于 "webpack" 模板的新项目 根据提示填写项目信息 && 对项 ... 
- ios上-webkit-overflow-scrolling与position的bug
			如上图,.fb-box是一个大div,包含着页面上的所有元素,包括所看到的那个弹窗.dialog-img,并且设置了height:100%;-webkit-overflow-scrolling:tou ... 
- 【webpack】从零开始学webpack
			背景:目前公司的项目全是用vue写的,建项目的话使用的是用vue-cli直接配置好的webpack,进行打包.现在我就是想实现自己写一个类似vue-cli的架子 一.安装全局依赖 npm instal ... 
- css3画半圆 , 加上一点动画
			border-radius制作半圆与制作圆形的方法是一样的,只是元素的宽度与圆角方位要配合一致,不同的宽度和高度比例,以及圆角方位,可以制作上半圆.下半圆.左半圆和右半圆效果.例如: .semicir ... 
