关于Java中流程控制

分支结构

分支结构之一: if 结构

public class structure {
public static void main(String[]args){
    //第一种if结构 :if(){}结构
    //如果为true就执行语句,如果false就不执行;
    //if后一定是布尔类型
    //
    int heartBeats= 79;
    if(heartBeats > 60 || heartBeats >100){
        System.out.print("需要进一步检查");
    }//需要进一步检查
    //第二种结构: if else结构,使用最多
    //三元运算符都可以转换成if else,反之不成立
    //if(){}else{}
    int age = 23;
    if(age<= 18){
        System.out.println("未成年");
    }else{
        System.out.println("成年人");
    }//成年人
    //第三种结构: if else if
    int time = 2;
    if(time<12){
        System.out.println("时间为上午");
    }else if(23<time ){
        System.out.println("时间为下午");
    }else if(time<24){
        System.out.println("现在睡觉为熬夜");
    }//时间为上午
}
        }

//扩展小需求1:从键盘获取不同类型的变量

import java.util.Scanner;
/*
        1,导包:import java.util.Scanner
        2,Scanner的实例化(创建对象):Scanner scan = new Scanner(System.in);
        3,调用方法,获取变量
* */
public class Operation {
public static void main(String[]args){
    Scanner scan = new Scanner(System.in);
    int num = scan.nextInt();
    System.out.println(num);
}
        }

//扩展小需求2:从键盘获取指定类型的变量

import java.util.Scanner;
public   class Operation{
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        System.out.println("请输入你的姓名:");
        String name = scan.next();
        System.out.println(name);
        System.out.println("请输入你的年龄: ");
        int age = scan.nextInt();
        System.out.println(age);
        System.out.println("请输入你的体重:");
        double weight = scan.nextDouble();
        System.out.println(weight);
        System.out.println("你是否已婚?(true / false)");
        Boolean isMarried = scan.nextBoolean();
        System.out.println(isMarried);

    }
}
//说明:
	1,多个表达式位置:
		①如果多个条件表达式是互斥关系,则判断位置再上或 下都可;
		②如果多个条件表达式存在交集关系,则需酌情考虑上或者下;
		③如果多个条件表达式有包含关系,则通常将范围小的放在上面;
	2,当代码只有一行的时候,大括号可以省去

#分支结构之二:switch - case结构:记得+break

public class Operation {
   public static void main(String args[]) {
       int  number = 1;
       switch(number){
       //case 后面跟的是常量不能是变量,且不能重复
           case 0:
               System.out.println("0");
           case 1:
               //匹配成功,但是没有break,则继续向下执行其他case的程序,不再看条件;case的穿透性;或者遇到}才会结束
               System.out.println("1");
           case 2:
               System.out.println("2");
           case 3:
               System.out.println("3");
               //遇到break,则停止向下执行
               break;
           case 4:
               System.out.println("4");
               //default相当于else的意思
           default:
               System.out.println("数字有误");
       }//1 2 3
           }
}
 //说明:
        ①switch case结构根据表达式一次匹配case中的常量。一旦匹配成功,则进入该case结构调用执行语句。当调用完毕后,会继续向下执行其他case结构中语句,直到遇到break或者}才会结束。
        ②break,表示一旦执行到此关键字,就会跳出switch-case结构;非必写
        ③switch中的表达式,可以使用的6大数据类型:byte short char int 枚举类型  String;
        ④case后只能声明常量,且不能重复
        ⑤switch-case不适用于给出数值太多的数据
        ps:switch-case 与 if else结构的区别:
        	①凡是可用switch-case的都可用if else,反之不成立;优先选择switch-case
        	总结:switch建议判断固定值的时候使用;if 建议判断区间或范围的时候使用

#switch-case练习

import java.util.Scanner;
public class Operation {
   public static void main(String args[]) {
       //控制台输入年份,判断是否是闰年
       Scanner scan = new Scanner(System.in);
       System.out.println("请输入待计算的年份:");
       int year = scan.nextInt();
       //判断是否是闰年的方法:①可以被4整除,但是不能被100整除;②或者可以被400整除
       if ((year % 4 == 0 & year % 100 != 0) || (year % 400 == 0)){
           System.out.println("恭喜,您输入的年份是闰年");
       }
       else{
           System.out.println("抱歉,您输入的年份不是闰年");
       }
   }
}

循环结构

for循环

public class Circulate {
   public static void main(String args[]) {
       //结构for(初始化;循环条件;迭代条件)
       for(int i = 0;i <5;i++){
           //循环体
           System.out.println("sout");
       }
   }
}

//for循环练习题1

public class Circulate {
   public static void main(String args[]) {
       int num1= 1;
       for(System.out.println('a');num1 <=3; System.out.println('c'),num1++ ){
           System.out.println('b');
       }
   }
}

//for循环练习题2

public class Circulate {
   public static void main(String args[]) {
       //遍历1-100内的偶数,并计算偶数和
       int sum = 0;//记录偶数和
       int count = 0;//记录偶数个数
       for(int i =0 ;i<=100;i++){
           if(i % 2==0){
               System.out.println(i);
               //累加操作
               sum+=i;
               count++;
           }
       }System.out.println("总和为:"+sum);//2550
       System.out.println("偶数个数为" + count);//51
   }
}

//for循环练习题3

//在java当中,如果两个if判断同级,if判断条件的代码都会去判断,不管前面的if判断条件是否成立,都会去判断执行下一个if的代码;
//如果是if()else if(){}的话,当前面的if判断条件成立的话,就不会再去判断else if的条件,有多个else if的时候,会去挨个进行判断,只要有一个符合条件,后面的else if都不会再去判断,当前面的判断条件都没成立,并且结尾有一个else,就会执行最后else中的代码。
public class Circulate {
   public static void main(String args[]) {
       //遍历0-100内数字,2的倍数打印 三的倍数打印
       for(int i = 0;i <= 100;i++){
           if(i%2 == 0){
               System.out.println("2的倍数" + i);
           }
           if(i%3==0){
               System.out.println("3的倍数" + i); ;}

           }

       }
   }

//for循环练习题4

import java.util.Scanner;
public class Circulate {
    public static void main(String args[]) {
        //求出两个数字的最大公约数
        Scanner scan = new Scanner(System.in);
        System.out.println("请输入第一个正整数:");
        int m = scan.nextInt();
        System.out.println("请输入第二个正整数:");
        int n = scan.nextInt();
        int min = (m <= n) ? m : n;
        for (int i = min; i <= min; i--) {
            if (i % m == 0 && i % n == 0) {
                System.out.println("最大公约数为:" + i);
                break;
            }
        }
        //求两个数最小公倍数
        int max1 = (m >=n)? m :n;
        for(int b=max1;b<=m*n;b++){
            if(b % m==0 && b%n==0){
                System.out.println("最小公倍数是:"+ b);
                break;
            }
        }
    }
}

//for循环练习题5

//求1000内的完数
public class Perfect{
    public static void main(String[] args) {
        for(int i = 2;i<= 1000;i++){
            int sum = 0;
            for(int j = 1; j < i ;j++){

                if(i % j == 0){
                    sum += j;
                }
            }
            if(i == sum){
                System.out.println(i);
            }
        }
    }
}

while循环结构

public class DoWhile {
    public static void main(String args[]) {
        //初始化
        int i = 0;
        //while(循环条件){循环体  迭代条件}
        while(i <= 100){
            //循环体
            if(i% 2 == 0){
                System.out.println(i);
            }
            //不写循环条件,会出现死循环;无线去执行循环
            //循环条件
            i++;
        }
    }
}
三种循环的区别:
			1.do while结构循环体至少执行一次,for和while必须满足条件才执行
			2.for循环的初始化变量作用域仅限于for循环内,而do while和while结构变量不限制

do while循环结构

public class DoWhile {
    public static void main(String args[]) {
        //遍历1-100中的偶数
        //do while结构
        //①初始化
        int i = 1;
        int sum = 0;
        do{
            //循环体
            if(i % 2== 0 ){
                sum += i;
                System.out.println(sum);
            }
            //循环迭代
            i ++;
        }
        //循环条件
        while (i <=100);
    }
}
说明:do - while循环是至少循环一次

#死循环

while(true){
S}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值