一:

    块作用域

块(即复合语句):是指由一对花括号括起来的若干条简单的java语句。块决定了变量的作用域,一个块可以嵌套在另一个块中,如下:

  1. public class print_In {
  2. public static void main(String[] args){
  3. int a=2;
  4. {
  5. int a=3;
  6. int b=3;
  7. }
  8. }
  9. }

需要注意:在一个块里,定义个变量,不能再嵌套的块里在定义相同的变量,如果定义会报错。

二:if语句

语法形式和js是一样:if(){}else if (){} ......else{}

java里的if语句不同于python里的if语句,python里可以直接用数组、字符串、字典等来充当条件,但是在java里只能使用表达式直接可以判断布尔值,才可以做判断,否则会报错。

  1. public class print_In {
  2. public static void main(String[] args){
  3. int a=2;
  4. int v=4;
  5. if (a<4){
  6. System.out.println("OK");
  7. }else {
  8. System.out.println("bad");
  9. }
  10. }
  11. }

错误的写法:

  1. public class print_In {
  2. public static void main(String[] args){
  3. int a=2;
  4. int v=4;
  5. if (a){
  6. System.out.println("OK");
  7. }else {
  8. System.out.println("bad");
  9. }
  10. }
  11. }

for循环:

语法:for (){} 通过计数器或者变量的值修改。来结束for循环,()表达式里包含三部分,初始化一个变量并赋值,变量的布尔比较,变量的自增。目的是循环的跳出。变量的作用域,作用域循环体。

如下:

  1. public class print_In {
  2. public static void main(String[] args) {
  3. int i;
  4. for(i=2;i<4;i++){
  5. System.out.println(i);
  6. }
  7. System.out.printf("i value is %s ",i);
  8. }
  9. }

如果main方法想使用for循环之后的变量值,需要在for循环外定义这个变量。才可以被外部调用!

 while 语句:

形式:while(condition){statement} 这种形式,当condition 成立的时候,才运行块代码,如果不成立将不会运行。

  1. public class print_In{
  2. public static void main(String[] args){
  3. int i=3;
  4. while (i<6){
  5. System.out.println(i);
  6. i+=1;
  7. }
  8. }
  9. }

while 循环另一个形式: do  {statement}while(condition)会运行一次块代码,在做判断。

  1. public class print_In{
  2. public static void main(String[] args){
  3. int i=3;
  4. do {
  5.  
  6. System.out.println(i);
  7.  
  8. }while (i<3);
  9. }
  10. }

这种场景比较多见的是:交互的时候,需要输出一定条件,然用户去做判断。

switch 多个选项:(比较少用)

当我们做多个判断的时候,使用if/else的时候显得很臃肿,可以使用switch case语句来判断。结构:

switch(var){case var:statement break;case var:statement break。。。。。。}注意加break 避免执行多个case分支。

  1. import java.util.Scanner;
  2.  
  3. public class print_In{
  4. public static void main(String[] args){
  5. Scanner scan= new Scanner(System.in);
  6. System.out.println("Please entre your choice?");
  7. int chocie=scan.nextInt();
  8. switch (chocie){
  9. case 1:
  10. System.out.printf("you have entre %d",chocie);
    break
  11. case 2:
  12. System.out.printf("you have entre %d",chocie);
    break
  13. case 3:
  14. System.out.printf("you have entre %d",chocie);
    break
  15. }
  16. }
  17. }

需要注意的是case后面跟的choice的值!!!

如果用户没有输入没有匹配的值,在if语句中我们使用else,在switch里用default子语句来判断未匹配到选项值的处理。default子句也需要break。

  1. import java.util.Scanner;
  2.  
  3. public class print_In{
  4. public static void main(String[] args){
  5. Scanner scan= new Scanner(System.in);
  6. System.out.println("Please entre your choice?");
  7. int chocie=scan.nextInt();
  8. switch (chocie){
  9. case 1:
  10. System.out.printf("you have entre %d",chocie)
    break
  11. case 2:
  12. System.out.printf("you have entre %d",chocie)
    break
  13. case 3:
  14. System.out.printf("you have entre %d",chocie)
    break
  15. default:
  16. System.out.printf("bad input");
    break
  17. }
  18. }
  19. }

四:中断流程

在java中,和python一样也有break和continue,但是java中的break 可以带标签进行退出。而python 不可以。

  1. public class loop {
  2. public static void main(String[] args){
  3. int i=2;
  4. while (i<5){
  5. System.out.printf("i is %d \n",i);
  6. if (i==4) break;
  7. i+=1;
  8. }
  9. }
  10. }

其中if(condition) break;为缩写,也可以写下面这样:

  1. public class loop {
  2. public static void main(String[] args){
  3. int i=2;
  4. while (i<5){
  5. System.out.printf("i is %d \n",i);
  6. if (i==4){
  7. break;
  8. }
  9. i+=1;
  10. }
  11. }
  12. }

带标签的break tag  ,其中tag需要用冒号,声明。指定跳到那个标签。如下:

  1. public class loop {
  2. public static void main(String[] args){
  3. int i=3;
  4. break_tag:
  5. while ( i<6){
  6. System.out.printf("i is %d\n" ,i);
  7. for (int a=2;a<6;a++){
  8. if (a==4){
  9. break break_tag;
  10. }
  11. System.out.printf("a is %d\n",a);
  12. }
  13. i++;
  14. }
  15. }
  16. }

注意语法:tag后面是冒号: ,紧随循环体,否则报没有块!

跳到tag之后,不会再次执行跳出的块代码(循环或者块的代码),执行后面的语句。

  1. public class loop {
  2. public static void main(String[] args){
  3. int i=3;
  4. break_tag:
  5. while ( i<6){
  6. System.out.printf("i is %d\n" ,i);
  7. for (int a=2;a<6;a++){
  8. if (a==4){
  9. break break_tag;
  10. }
  11. System.out.printf("a is %d\n",a);
  12. }
  13. i++;
  14. }
  15. System.out.printf("OK");
  16. }
  17. }

tag的位置。tag可以跳出多个循环。但是break只能跳出块,不能跳入块!

当然了,不仅仅是loop情况,也可以是if等语句的块代码。

  1. public class loop {
  2. public static void main(String[] args){
  3. int i=3;
  4. for (int a=2;a<6;a++){
  5. break_tag:
  6. if(i >0){
  7.  
  8. if (a==4){
  9. break break_tag;
  10. }
  11. System.out.printf("a is %d\n",a);
  12. }
  13. i++;
  14. }
  15. }
  16. }

输出结果:

  1. a is 2
  2. a is 3
  3. a is 5

continue 和python 里的continue 意思是一样。就是跳出循环的,回到循环首部。

当然continue也有标签的意思。指定跳到匹配的标签的循环首部。

java 控制流的更多相关文章

  1. java控制流

    目录 1.引用数据类型 2.流程控制语句 2.1 条件控制语句if 2.2 if语句与三元运算符的互换 2.3 循环语句 2.4 循环嵌套 2.5 跳转语句 2.6 选择结构switch 3.猜数字案 ...

  2. java控制流学习

    java流程控制学习 Scanner对象 概念 1.通过Scanner类实现程序和人的交互,通过它获取到用户的输入.java.util.Scanner是java5的特征. 我们可以通过Scanner类 ...

  3. HowToDoInJava Java 教程·翻译完成

    原文:HowToDoInJava 协议:CC BY-NC-SA 4.0 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远. ApacheCN 学习资源 目录 核心 Java 教程 什 ...

  4. Dart编程语言入门

    Dart基础入门语法介绍,详细说明可以查看相关视频<Dart编程语言入门>. 变量与常量 变量 1.使用 var 声明变量,默认值为 null var a;//null a = 10; 2 ...

  5. Spark案例分析

    一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...

  6. java基础-控制流语句

    浏览以下内容前,请点击并阅读 声明 一般情况下,代码的执行按照从上到下的顺序,然而通过加入一些判断,循环和跳转语句,你可以有条件地执行特定的语句. 接下来分三部分介绍Java的控制流语句,他们是判断语 ...

  7. 黑马程序员——JAVA基础之程序控制流结构之判断结构,选择结构

    ------- android培训.java培训.期待与您交流! ---------- 程序控制流结构:顺序结构:判断结构:选择结构:循环结构. 判断结构:条件表达式无论写成什么样子,只看最终的结构是 ...

  8. 《深入Java虚拟机学习笔记》- 第16章 控制流

    <深入Java虚拟机学习笔记>- 第16章 控制流

  9. Java使用条件语句和循环结构确定控制流

    与任何程序设计语言一样,Java使用条件语句和循环结构确定控制流.本文将简单讲解条件.循环和switch. 一.块作用域 块(block),即复合语句.是指由一对大括号括起来的若干条简单的Java语句 ...

随机推荐

  1. HwUI,CMS管理系统模板,漂亮,简单,兼容好

    HwUI兼容目前所有浏览器,IE6+,Opera,Firefox,Chorme,Safari,由于IE6基本已废弃,所以也没有测试IE6的兼容,但做了部分IE6兼容调整.HwUI操作简单,路由导航不需 ...

  2. 从敲入 URL 到浏览器渲染完成、对HTTP协议的理解

    1. 大致过程 当你这样子回答的时候: 用户输入 url 地址,浏览器查询 DNS 查找对应的请求 IP 地址 建立 TCP 连接 浏览器向服务器发送 http 请求,如果服务器段返回以 301 之类 ...

  3. 重要BLOG

    Cloud http://www.cnblogs.com/CloudMan6/tag/OpenStack/ 算法基础 http://www.cnblogs.com/ECJTUACM-873284962 ...

  4. PS改变图像颜色

    由于写的一个页面主色调变了,里面的一些图标颜色也要相应改变,自己难得重新去psd里面截图,就想着用ps,看能否直接能变换一下图标颜色.其实方法也很简单的. 1:用ps打开需要改变图标颜色的文件,然后选 ...

  5. 【Python】Java程序员学习Python(四)— 内置方法和内置变量

    <假如爱有天意> 当天边那颗星出现,你可知我又开始想念,有多少爱恋只能遥遥相望,就像月光洒向海面,年少的我们曾以为,相爱的人就能到永远,当我们相信情到深处在一起,听不见风中的叹息,谁知道爱 ...

  6. Pig数据类型

    基本类型 int.long.float.double.chararray.bytearray.datatime.boolean.biginteger.bigdecimal 复杂类型 map.tuple ...

  7. Ubuntu16安装GPU版本TensorFlow(个人笔记本电脑)

    想着开始学习tf了怎么能不用GPU,网上查了一下发现GeForce GTX确实支持GPU运算,所以就尝试部署了一下,在这里记录一下,避免大家少走弯路. 使用个人笔记本电脑thinkpadE570,内存 ...

  8. CSS 小结笔记之浮动

    在css中float是一个非常好用的属性,float最基本用法是用来做文字环绕型的样式的. 基本用法:float:left | right 例如 <!DOCTYPE html> <h ...

  9. 3.Servlet实例

    一.基础实例 1.参照如下例子创建maven web工程: https://www.cnblogs.com/lukelook/p/9187313.html 2.创建一个简单的Servlet 类 pac ...

  10. Entity Framework 更新模式之Attach与EntityState.Modified模式的区别

    数据库中有一个City表 初始时数据: 实体类与Fluent Api配置映射 public class City { public int Id { get; set; } public string ...