Java入门(三)流程控制

Java入门(三)流程控制

一 用户交互Scanner

我们可以用Scanner类来获取用户的输入

基本语法

next()方法

Scanner sc = new Scanner(System.in);
String s = "";
if (sc.hasNext()){
  s = sc.next();//输入Hello World
}
System.out.println(s);//输出Hello,sc.next()方法只会扫描有效字符,空格之后的会自动忽略,也就是说空格,制表符,回车都是结束标志

nextLine()方法

 Scanner sc = new Scanner(System.in);
 String s = "";
 if (sc.hasNextLine()){
   s = sc.nextLine();//输入Hello World
 }
 System.out.println(s);//输出Hello World,只有回车是结束标志

还有诸如,nextInt():接收一个int型数据,nextDouble():接收一个double型数据等等

二 顺序结构

  1. java的基本结构就是顺序结构,除非特别指明,否则就按顺序一步一步执行
  2. 顺序结构是最简单的算法结构
  3. 它是任何一个算法都离不开的基本算法结构
System.out.println("Hello1");
System.out.println("Hello2");
System.out.println("Hello3");
System.out.println("Hello4");
System.out.println("Hello5");
System.out.println("Hello6");

三 选择结构

if单选择结构

我们很多时候需要去判断一个东西是否可行,然后我们才去执行,这样一个过程在程序中用 if 语句来表示

语法

//if (布尔表达式) {
//    执行语句
//}
int a = 5;
if (a > 3) {
  System.out.println(a);//输出5
}

if双选择结构

当我们需要判断一个条件成立会去做一件事,否则会去做另一件事,这样就可以用if…else…来做

语法

/*
if (布尔表达式) {
    执行语句
} else {
    执行语句
}
*/
int a = 5;
if (a < 3) {
  System.out.println(a);
} else {
  System.out.println(3);//输出3
}

if多选择结构

但有时候还存在多种情况,双选择结构就不香了,这时候可以使用多选择结构

语法

/*
if (布尔表达式) {
    执行语句
} else if (布尔表达式) {
    执行语句
} else if (布尔表达式) {
    执行语句
} else if (布尔表达式) {
    执行语句
} else if (布尔表达式) {
    执行语句
} else {
    执行语句
}
*/
Scanner sc = new Scanner(System.in);
int score = sc.nextInt();//输入90
if (score >= 0 && score < 60) {
  System.out.println("不及格");
} else if (score >= 60 && score < 70) {
  System.out.println("及格");
} else if (score >= 70 && score < 80) {
  System.out.println("良好");
} else if (score >= 80 && score <= 100) {
  System.out.println("优秀");//输出优秀
} else {
  System.out.println("请输入正确的分数");
}

嵌套的if结构

我们可以在 if , else, else if 语句中嵌套使用 if, else, else if

语法

/*
if (布尔表达式) {
  if (布尔表达式) {
    
  } else {
    if (布尔表达式) {
      
    } else if (布尔表达式) {
      
    }
  }
} else {
  if (布尔表达式) {
    
  }
}
*/
int a = 10;
if (a > 5) {
  if (a > 11){
    System.out.println(11);
  }else {
    System.out.println(5);/输出5
  }
} else {
  if (a < 0) {
    System.out.println(-1);
  } else if (a > -1) {
    System.out.println(0);
  }
}

Switch多选择结构

类似于 if 多分支结构

/*
switch(变量){
  case value:
    语句
    break;//可选
  case value:
    语句
    break;//可选
  case value:
    语句
    break;//可选
  default://可选
    语句
}
*/
int a = 10;
switch (a) {
  case 10:
    System.out.println(10);//输出10
    break;
  case 11:
    System.out.println(11);
  default:
    System.out.println(12);
}

四 循环结构

while循环

  1. while是最基本的循环,它的结构为

    /*
    while (布尔表达式) {
        //循环内容
    }
    */
    int i = 3;
    while (i > 0) {
        System.out.println(i);
        i--;
    }
    
    1. 只要布尔表达式为true,循环就会一直重复下去
    2. 我们大多数情况是会让循环停止下来的,我们需要一个让表达式失效的方式来结束循环,比如上面的 i–
    3. 少部分情况需要循环一直执行,比如服务器的请求响应监听等

do while循环

  1. 对于while语句而言,如果不满足条件,则不能进入循环。但有时候我们需要即使不满足条件,也至少执行一次

  2. do…while循环和while循环相似,不同的是,do…while循环至少会执行一次

    /*
    do {
        //循环语句
    } while(布尔表达式);
    */
    int i = 1;
    do {
        System.out.println(i);
    } while(i > 2);
    
    1. while和do…while的区别:

      1)while先判断后执行,do…while是先执行后判断

      2)do…while总是保证循环体至少会被执行一次

for循环

  1. 虽然所有循环结构都可以用while或do…while表示,但java提供了另一种语句——for循环,使一些循环结构变得更加简单

  2. for循环是支持迭代的一种通用结构,是最有效、最灵活的循环结构

  3. for循环执行的次数是在执行前就确定的。语法格式如下:

    /*
    for (初始化;布尔表达式;更新) {
        //循环语句
    }
    */
    for (int i = 0;i < 3;i++) {
        System.out.println(i);
    }
    
    1. 九九乘法表

      for (int i = 1;i <= 9;i++) {
         for (int j = 1;j <= i;j++) {
           System.out.print(j+" * "+i+" = "+i*j+"\t");
         }
         System.out.println();
      }
      /*
      1 * 1 = 1	
      1 * 2 = 2	2 * 2 = 4	
      1 * 3 = 3	2 * 3 = 6	3 * 3 = 9	
      1 * 4 = 4	2 * 4 = 8	3 * 4 = 12	4 * 4 = 16	
      1 * 5 = 5	2 * 5 = 10	3 * 5 = 15	4 * 5 = 20	5 * 5 = 25	
      1 * 6 = 6	2 * 6 = 12	3 * 6 = 18	4 * 6 = 24	5 * 6 = 30	6 * 6 = 36	
      1 * 7 = 7	2 * 7 = 14	3 * 7 = 21	4 * 7 = 28	5 * 7 = 35	6 * 7 = 42	7 * 7 = 49	
      1 * 8 = 8	2 * 8 = 16	3 * 8 = 24	4 * 8 = 32	5 * 8 = 40	6 * 8 = 48	7 * 8 = 56	8 * 8 = 64	
      1 * 9 = 9	2 * 9 = 18	3 * 9 = 27	4 * 9 = 36	5 * 9 = 45	6 * 9 = 54	7 * 9 = 63	8 * 9 = 72	9 * 9 = 81	
      */
      

增强for循环

java5引入了一种主要用于数组或集合的增强型for循环

语法格式如下

/*
for (集合或数组中的数据类型 变量名称 : 集合或数组) {
    //循环语句
}
*/
int[] a = new int[5];
for (int b : a) {
    System.out.println(b);
}

break、continue和goto

  1. break在任何循环语句的主体部分,均可用break控制循环的流程。break用于强行退出循环,不会执行剩下的循环次数
for (int i = 0;i <= 5;i++) {
  if (i % 2 == 1) {
    break;
  }
  System.out.println(i);//输出0
}
  1. continue也可以在任何循环语句的主体部分,用于终止某次循环过程,即跳过continue之后的语句,但不会减少循环次数
for (int i = 0;i <= 5;i++) {
  if (i % 2 == 1) {
    continue;
  }
  System.out.println(i);//输出0,2,4
}
  1. goto关键字很早就在程序设计语言中出现过,尽管goto仍是java的一个保留字,但并未在语言中正式使用;java中没有goto,然而,在break和continue这两个关键字身上,我们仍然能看出一些goto的影子——带标签的break和continue

    “标签”是指后面跟一个冒号的标识符,例如:a:

    对于java来说唯一用到标签的地方是在循环语句之前,而在循环之前设置标签的唯一理由是:我们希望在其中嵌套另一个循环,由于break和continue关键字通常只中断当前循环,但若同标签一起使用,就会中断到存在标签的地方

    a:for (int i = 0;i <= 5;i++) {
      for (int j = 0;j <= 5;j++) {
        if (j == 1) {
          break a;
        }
        System.out.println(j);//输出0
      }
    }
    
    a:for (int i = 0;i <= 5;i++) {
       for (int j = 0;j <= 5;j++) {
         if (j == 1) {
           continue a;
         }
         System.out.println(j);//输出6个0
       }
    }
    
    1. 打印三角形

       for (int i = 0; i < 5; i++) {
         for (int j = 5 - i;j > 0;j--){
           System.out.print(" ");
         }
         for (int j = 0;j <= i;j++){
           System.out.print("*");
         }
         for (int j = 0;j < i;j++) {
           System.out.print("*");
         }
         System.out.println();
       }
      /*
           *
          ***
         *****
        *******
       *********
      */
      
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值