Java流程控制

Java流程控制

  • 用户交互scanner
  • 顺序结构
  • 选择结构
  • 循环结构
  • break&continue
  • 练习

用户交互Scanner

我们可以通过Java的包获取用户的输入

import java.until.Scanner;
  • 基本语法
Scanner s = new Scanner(Sysrem.in);
  • 通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前我们一般需要使用hasNextLine()判断是否还需要输入的数据
import java.until.Scanner;
public class demo{
   public static void main(String[] arges){
       //从键盘接收数据
       Scanner scanner = new Scanner(System.in);//重要
          System.out.println("使用nextLine方式接受:");
       /*可以去掉
       //判断是否还有输入
       if (scanner.hasNextLine()){
       */
           //等待用户去输入,重要
           String str = scanner.nextLine();//String 与 Line对应
           System.out.println("输出的内容为: "+str);
       }
       scanner.close();
   }
}

next():

  • 一定要读取到有效字符后才可以结束输入
  • 对输入有效字符之前遇到的空白,next()方法会自动将其去掉
  • 只有输入有效字符后才将其后面输入的空包作为分隔符或者结束符
  • next()不能带到有空格的字符串

nextLine():

  • 以Enter为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符
  • 可以获得空白

顺序结构

顺序结构是最最简单的算法结构

他是任何一个算法都离不开的结构

选择结构

  • if单选择结构
  • if双选择结构
  • if多选择结构
  • 嵌套的if结构
  • switch的选择结构

if单选择结构

语法:

if (条件语句){
    执行语句
}
例如:
if(scan.equals("比对")){
    //equals 是比对字符串是否一致
}

if双选择结构

语法:

if(条件语句){
    执行语句
}else{
    执行语句
}

if多选择结构

语法:

if(条件语句){
    执行语句
}else if(条件语句){
    执行语句
}else if(条件语句){
    执行语句
}else {
    执行语句
}

if嵌套结构

语法:

if(条件语句1){
    if(条件语句1){
    
}
}

switch多选择结构

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

switch(条件语句){
    case value:
        执行语句;
             break;(可选)
    case value:
        执行语句;
         break;
     case value:
        执行语句;
        break;
    case value:
        执行语句;
         break;
             default:(可选)
        执行语句
}

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

  • byte、short、int或者char
  • 从Java SE7考试
  • switch支持字符串String类型了
  • 同时case标签必须为字符串常量或者字面量

case穿透:

当没有break时,下面的选项都会输出

循环结构

  • while循环
  • do...while循环
  • for循环
  • 在Java5中引入了亿中主要用于数组的增强型for循环

while循环

语法:

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

do...while

语法:

do{
    执行语句
}while(条件语句)
  • while先判断后执行,dowhile是先执行后判断
  • dowhile总是保证循环体被至少执行一次

for循环

语法:

for(初始化;条件语句;更新){
    执行语句
}

计算奇数和偶数的和:

package xunhuan;

public class ForXunHuan {
    public static void main(String[] args) {
        int i = 0;
        int Osum = 0;
        int Jsum = 0;
        for (i=0;i<=100;i=i+2){
            Osum = Osum + i;
        }
        System.out.println(Osum);
        for (i=1;i<100;i=i+2){
            Jsum = Jsum + i;
        }
        System.out.println(Jsum);
    }
}
/**
 * 第二种方法
 * for(i=0;i<=100;i++){
 *     if(i%2!=0){
 *         //奇数
 *         Jsum = Jsum + i;
 *         
 *     }else{
 *         Osum = Osum + i;
 *         
 *     }
 *     System.out.println(Jsum);
 *     System.out.println(Osum);
 * }
 */

用while或者for循环计算出1-1000内能被5整除每行输出三个:

 for (int i=0;i<=1000;i++){
            if(i%5==0){
                System.out.print(i + "\t");
            }
            if(i%(5*3)==0){
                System.out.println();
            }
        }

打印99乘法表:

		int sum = 0;
        int x = 0;
        for (int i = 1; i <= 9; i++) {
            for (int j = 1; j <= i; j++) {
                sum = i * j;
                System.out.print(j + "*" + i + "=" + sum + "\t");

            }
            System.out.println();
        }
  1. 先打印第一列
  2. 固定的列再用循环包起来
  3. 去掉重复项 ,i<=j
  4. 调整样式

增强型for循环

主要用来遍历数组和集合对象

语法:

for(声明语句:表达式){
    执行语句
}

例子:

package xunhuan;

public class UpForXunHuan {
    public static void main(String[] args) {
        int[] numbers = {10,20,30,40,50};//定义一个数组
        //遍历数组的元素
        for(int x:numbers){
            System.out.println(x);
        }
    }
}

break 和 continue

  • break用于强行退出循环
  • break只是跳出循环不是终止程序
  • continue用在循环语句体中,用于终止某次循环过程,即跳过循环体中稍微执行的语句,接着进行下一次循环

练习

打印5行的三角形

package xunhuan;

public class TestXunHuan {
    public static void main(String[] args) {
        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++){//因为第一行只需要一个所以说j<i而不是j<=i
                System.out.print("*");
            }
            System.out.println();

        }
    }
}

posted @ 2021-02-05 14:37  WebTube  阅读(86)  评论(0)    收藏  举报