一:

    块作用域

块(即复合语句):是指由一对花括号括起来的若干条简单的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 控制流的更多相关文章

  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. python 字符串居中

    下面的代码可以让字符串居中,左对齐和右对齐,字符串长度设置为50,居中后左右补充空格,右对齐会在左侧补充空格 string1 = "Now I am here." print( s ...

  2. CSS 媒体查询创建响应式网站

    使用 CSS 媒体查询创建响应式网站  适用于所有屏幕大小的设计 固定宽度的静态网站很快被灵活的响应式设计所取代,该设计可以根据屏幕大小进行上扩和下扩.利用响应式设计,无论您采用什么设备或屏幕来访问网 ...

  3. Android手动显示和隐藏软键盘

    1.方法一(如果输入法在窗口上已经显示,则隐藏,反之则显示) InputMethodManager imm = (InputMethodManager) getSystemService(Contex ...

  4. Django基础五之django模型层(一)单表操作

    一 ORM简介 MVC或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库,这极大的减轻了开发人 ...

  5. mysqli 查询

    $mysqli = new mysqli('localhost', 'user', 'pwd', 'dbname'); $query = "select goods_id,goods_nam ...

  6. 实现ListView的加载更多的效果,如何将按钮布局到始终在ListView的最后一行

    实现方式一:在代码中实现: 1,在一个布局中定义一个Button,在活动中加载Button的父布局, 例如:View bottomView = getLayoutInflater().inflate( ...

  7. Eigen学习之Array类

    Eigen 不仅提供了Matrix和Vector结构,还提供了Array结构.区别如下,Matrix和Vector就是线性代数中定义的矩阵和向量,所有的数学运算都和数学上一致.但是存在一个问题是数学上 ...

  8. Oracle EBS 报表日期格式问题

    1.确保参数日期值集选择:FND_STANDARD_DATE 2.将程序的入口参数选择为 varchar2类型 3.注意输出和游标时参数的截断  to_date(substr(p_DATE_from, ...

  9. mysqldump的假注释

    今天在查看mysqldump内容的时候,发现类似注释的东西,仔细了解了下, If you add a version number after the “!” character, the synta ...

  10. JavaScript DOM 編程藝術(2版) 綜合實例Band js代碼

    function addLoadEvent(func){ var oldonload=window.onload; if(typeof window.onload!='function') { win ...