Live2D

Java流程控制

用户交互Scanner

Scanner对象

java.util.Scannner是java5新特性,我们可以通过Scanner类来获取用户的输入。

//基础语法
//创建一个扫描器对象,用于接受键盘的数据。
Scanner sc = new Scanner(System.in);

通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前我们一般需要使用hasNext()与hasNextLine()判断是否还有输入的数据。

next()方法

//创建一个扫描器对象,用于接受键盘的数据。
Scanner sc = new Scanner(System.in);
System.out.println("使用next方法接收:");
//判断用户有没有输入字符串
if(sc.hasNext()){
   //使用next方法接收
   String str = sc.next();
   System.out.println("输出的内容是:"+str);
  }
//凡属于IO流的类如果不关闭会一直占用资源,养成良好习惯用完关闭。
    sc.close();

输出结果: 使用next方法接收: Hello World! 输出的内容是:Hello

nextLine()方法

//创建一个扫描器对象,用于接收键盘输入的数据
Scanner sc = new Scanner(System.in);
System.out.println("使用nextLine方法接收:");
//判断是否输入字符串
if (sc.hasNextLine()){
   //使用nextLine方法接收
  String str = sc.nextLine();
   System.out.println("输出的内容是:"+str);
}
//关闭
sc.close();

输出结果: 使用nextLine方法接收: Hello World! 输出的内容是:Hello World!

next()方法和nextLine()方法区别

next方法:

  1. 一定要读取有效字符后结束。

  2. 对输入有效字符前空白,next()方法自动去掉

  3. 对输入有效字符后有空白是结束符

  4. next()不能带有空格的字符串

nextLine()方法

  1. nextLine()方法可以输出回车前的所以字符

  2. 可以有空白

顺序结构

从上到下依次执行它是由若干个依次执行的处理步骤组成,它是任何一个算法都离不开的一种基本算法结构。

System.out.println("1");
System.out.println("2");
System.out.println("3");
System.out.println("4");
System.out.println("5");

输出结果:

1 2 3 4 5

选择结构

if单选择结构

if(布尔表达式 ){
  //如果布尔表达式为true将执行的语句
}

 

if双选择结构

if(布尔表达式 ){
  //如果布尔表达式为true将执行的语句
}else{
   //如果布尔表达式为false将执行的语句
}

 

if多选择结构

if(布尔表达式1){
  //如果布尔表达式1为true将执行的语句
}else if(布尔表达式2){
   //如果布尔表达式2为true将执行的语句
}else if(布尔表达式3){
   //如果布尔表达式3为true将执行的语句
}else if(布尔表达式4){
   //如果布尔表达式4为true将执行的语句
}else{
   //如果以上布尔表达式都不为true执行语句
}

 

嵌套的if结构

if(布尔表达式1 ){
  //如果布尔表达式1为true将执行的语句
   if(布尔表达式2){
     //如果布尔表达式2为true将执行的语句  
  }
}

 

switch多选择结构

switch case语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。

switch语句中的变量类型可以是

  1. byte,short,int或者char.

  2. switch支持字符串String类型

  3. 同时case标签必须为字符串常量

switch(expression表达式){
       case value:
          //语句
          break;//可选
        case value:
          //语句
          break;//可选
        case value:
          //语句
         break;//可选
       //可以有任意数量的case语句
   default://可选
       //语句
}

case穿透

 

循环结构

while循环

while(布尔表达式){
  //循环内容
}

我们大多数情况下会让循环停下来,我们需要一个让一个表达式失效的方式来结束循环。

如果循环条件是true就是一个死循环,正常业务中会避免死循环发生。

do...while循环

do{
   代码块
}while(布尔表达式);

While和do-While的区别

  1. while先判断执行后,do-while先执行后判断

  2. do-while总是保证循环体会被至少执行一次,这是他们主要差别。

for循环

for循环语句是支持迭代的一种通用结构。是最有效的,最灵活的循环结构。

for循环执行的次数是在执行前就确定的,语法如下

for(初始化;布尔表达式;更新){
   //代码语句
}
//初始化      条件判断   迭代
for (int i = 0; i <= 100; i++) {
  System.out.println(i);
  }

练习一:计算0到100之间的奇数和偶数和

int sum = 0;//偶数和
int sum1=0;//奇数和
for (int i = 0; i <= 100; i++) {
   if (i%2==0){//判断是否为偶数
       sum=sum+i;
  }else {
       sum1=sum1+i;
  }
  }
System.out.println("偶数和是:"+sum);
System.out.println("奇数和是:"+sum1);

练习二:用While或for循环输出1-1000之间被5整除的数,并且每行输出三个。

 //用While或for循环输出1-1000之间被5整除的数,并且每行输出三个。
   //用While执行
   int i =1;
   while (i<1000){
       if (i%5==0){
           System.out.print(i+"\t");
      }
       i++;
       if (i%(5*3)==0){//每行输出三个
           System.out.println();
           //System.out.print("\t");
      }
  }
//用While或for循环输出1-1000之间被5整除的数,并且每行输出三个。
   //用for执行
   for (int i = 1; i < 1000; i++) {
       if (i%5==0){
           System.out.print(i+"\t");
      }
       if(i%(5*3)==0){//每行输出三个
           System.out.println();
           //System.out.print("\t");
      }
  }

练习三:九九乘法表

/*
   1.打印第一列
   2.我们把固定的1循环包起来
   3.去掉重复项 i<=j
   4.调整样式
    */
   for (int j = 1; j <= 9; j++) {
       for (int i = 1; i <=j; i++) {
           System.out.print(i+"*"+j+"="+(j*i)+ "\t");
      }
       System.out.println();
  }

}/*
       1.打印第一列
       2.我们把固定的1循环包起来
       3.去掉重复项 i<=j
       4.调整样式
        */
       for (int j = 1; j <= 9; j++) {
           for (int i = 1; i <=j; i++) {
               System.out.print(i+"*"+j+"="+(j*i)+ "\t");
          }
           System.out.println();
      }

增强For循环

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

格式如下

for(声明语句:表达式){
   //代码句子
}

声明语句:声明新的局部变量,改变量的类型与数组元素的类型匹配其作用域限定在循环语句块,其值

与此时数组元素值相等。

表达式:表达式式是要访问的数组名,或者是返回值为数组的方法。

int [] numbers = {10,3,34,45,56};//定义一个数组
//遍历数组中的元素
for (int i:numbers) {
   System.out.println(i);
}

break&continue

break在任何循环语句主体部分,均可用break控制循环的流程,break用于强制退出循环,不执行剩余的语句

continue语句用在循环语句体中,用于终止某次循环过程,即跳过循环体尚未执行的语句,接着进行下一次是否循环。

 int a = 0;
  while (a<100){
      if (a==3){
          break;
      }
      a++;
      System.out.println(a);
  }

}
 int i = 0;
  while (i<20){
      i++;
      //从0-20除了被10整除的数不输出,其它输出
      if (i%10==0){
          System.out.println();
          continue;
      }

      System.out.print(i+"\t");
  }
}
输出结果:
1 2 3 4 5 6 7 8 9
11 12 13 14 15 16 17 18 19

练习

  1. 打印三角形

for (int i = 1; i <= 5; i++) {
   for (int j = 5; j >= i; j--) {
       System.out.print(" ");//倒三角右半部分
  }
   for (int j = 1; j <= i; j++) {
       System.out.print("*");//正三角的左半部分
  }
   for (int j = 1; j < i; j++) {
       System.out.print("*");//三角形
  }
   System.out.println();
}
posted @ 2021-01-14 19:30  MWTYING  阅读(90)  评论(0)    收藏  举报