Java教程

Java学习-6-流程控制

本文主要是介绍Java学习-6-流程控制,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

目录

一、Scanner

二、顺序结构

三、选择结构

四、循环

五、break、continue、return

具体内容

一、Scanner

  1.1Scanner对象

  1.1.1 next():

    next必须读取到有效的字符串才可以停止;在输入有效字符前遇到的空白,next()方法会自动将其过滤掉;之后输入有效字符后才会把后面输入的空白作为分隔符或者结束符。

  1.1.2 nextLine()

    nextLine()是以enter键作为结束符。可以获取空白。

    我们在编程过程中如果有IO流,那我们一定要将资源进行关闭,最好在开始编写程序的时候就关闭流。

二、顺序结构

   顺序结构是java一种最基本的结构,除非特别指明,否则一般是按照顺序执行的。

  同时顺序结构也是最简单的一种算法结构。任何算法都离不开的一种结构。

三、选择结构

3.1 if选择结构

   if 选择结构包含单选泽结构、双选择结构和多选择结构,如下所示:

    //if单选择结构
        /*
        语法结构为:
        if(布尔表达式){
        //如果布尔表达式是true执行的语句
        }
     */    
  if(s.equals("1")){
    System.out.println(s);
  }
  //if双选择结构
  if(s>60){
      System.out.println("及格");
  } else {
      System.out.println("不及格");
  }

  //if的多选择结构
  if(score==100){
      System.out.println("满分,超赞!");
  } else if(score<100 && score>90){
      System.out.println("A级");
  } else if (score<90 && score>80){
      System.out.println("B级");
  } else if(score<80 && score>70){
      System.out.println("C级");
  } else if(score<70 && score>0){
      System.out.println("C级");
  } else {
      System.out.println("成绩不合法");
  }

 

3.2 switch多选择结构

  多选择结构的另外一种方式就是Switch case 结构。在Switch case 中是判断一个值与多个变量之间的比较。每一个值成为一个分支。

  具体结构根据如下所示:

  我们输入学生的成绩,判断这个学生的成绩是A B C D 哪中情况。

char grade = 'A';
switch(grade){
        case 'A':
          System.out.println("A");
       break;
     case 'B':
       System.out.println("C");
       break;
     case 'C':
       System.out.println("C");
       break;
     default:
       System.out.println("输入不符合规范");
       break;
}

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

  byte、short、int、char

  从JavaSE 7开始:switch 支持字符串String类型。

  case 标签必须为字符串常量或者字面量

我们写case语句的时候,每一个都要加上case,否则后面的也会被输出。

  JDK7 的新特性,表达式结果可以是字符串!!!

  字符的本质还是数字。

  反编译---java----class(字节码文件)--反编译(IDEA)。

四、循环

4.1 while

while循环是最基本的循环,他的结构如下:

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

  只要布尔表达式为true,循环就会一直执行下去。但是我们一般情况下是会让循环停止下来的,我们需要一个表达式让循环结束。

  少部分情况需要循环一直执行,比如服务器的请求响应监听等。

  循环的条件一直为true就会造成无限循环(死循环),一般情况我们要避免死循环。它会影响程序的性能或者让程序崩溃。

 

举例:1+2+3+4+5+6+... +100
int i=0;
int sum=0;
while(i<=100){
  sum = sum+i;
  i++;
}
System.out.println(sum);

4.2 do ... while

  对于while语句而言,如果不满足条件,则不能进入循环。但是有些情况下需要让程序至少执行一次。

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

do{
  //语句
}while();
while和do ... while的区别
2 while先判断后执行,dowhile是先执行后判断。
3 do ... while总是保证循环会至少执行一次,这是是主要差别

4.3 for循环

  在循环中while和do...while几乎能实现所有的循环,但是在JAVA中有更加简单的一种循环,就是for循环。

  for循环是一个有限次数的循环。可以知道程序执行多少次。是一种有效、灵活的循环结构。

  具体循环结构如下:

for(初始条件;判断条件;变化方式){
  //具体语句
}

  我们可以看下以下几个小例子

  1.计算0到100之间的奇数和偶数的和。

//使用while循环
int a=1;
while(a<=1000){
    //此处的条件判断应该先放值判断,再进行换行
    if(a%5==0){
        System.out.print(a+"\t");
    }
    if(a%(3*5)==0){
        System.out.print("\n");
    }
    a++;
}
//使用for循环
int addSum = 0;//奇数
int evenSum = 0;//偶数
for(int i=0;i<=100;i++){
    if(i%2!=0){
        addSum += i;
    }else{
        evenSum +=i;
    }
}
System.out.println("奇数和为"+addSum);
System.out.println("偶数和为"+evenSum);

  2.打印九九乘法表

        //打印九九乘法表
        /*
        使用嵌套for循环,第一层的for循环是是行数的循环
        第二层的for循环是列的循环。
        打印第一行,最后的数字和行数是一样的
        所以在第二行,我们直接使用行行数就可以啦!
         */
        for(int i=1;i<=9;i++){
            for(int j=1;j<=i;j++){
                System.out.print(j+"*"+i+"="+i*j+"\t");
            }
            System.out.print("\n");
        }    

  3.打印1-1000以内能整除5的数字,并且打印3个数字之后换一行。

      int a=1;
        while(a<=1000){
            //此处的条件判断应该先放值判断,再进行换行
            if(a%5==0){
                System.out.print(a+"\t");
            }
            if(a%(3*5)==0){
                System.out.print("\n");
            }
            a++;
        }
        // "\n" 转义字符表示换行
        // "\t" 转义字符表示空格
        //println 输出会换行
        //print 输出不会换行

4.4 增强for循环

在java5 中引入了一种主要用于数组的增强for循环。

 

  /*
    java5 中引入了一种主要用于数组或者集合的增强型for循环
    增强for循环主要用于数组或者集合
    具体语法格式如下:
    for(声明语句:表达式){      声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配
                                        作用域限定在循环语句块,它的值和此时数组元素的值相等
                             表达式:表达式里是要访问的数组名,或者是返回值为数组的方法。
        //代码语句
    }
    */
    public static void main(String[] args) {
        int[] numbers = {10,20,30,40,50};
        for(int i=0;i<numbers.length;i++){
            System.out.print(numbers[i]+"\t");
        }
        System.out.println();
        //遍历数组的元素
        for(int x:numbers){
            System.out.print(x+"\t");
        }
    }

五、break、continue、return

   break在任何循环的主体中,均可用于终止此次循环。

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

  return是用于跳出方法。

关于goto关键字

  java中作为保留字。

六、小练习,打印三角形

//打印三角形 5行
    /*
       分析:
       我们首先外层按照列打印,再打印行
       (1)第一行前面是5个空格
       (2)第一行打印一个*,第二行打印3个*
       (3)打印第一个内循环,先打印空格
            打印第二个内循环,打印一半的*
            打印第三个内循环,打印右侧的*
     */
    public static void main(String[] args) {
        for(int i=5;i>0;i--){
            for(int j=0;j<=i;j++){
                System.out.print(" ");
            }
            for(int m=5;m>=i;m--){
                System.out.print("*");
            }
            for(int m=5;m>i;m--){
                System.out.print("*");
            }
            System.out.print("\n");
        }
    }

 

这篇关于Java学习-6-流程控制的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!