java三大流程控制

一.顺序控制

依次执行代码。

二.条件控制

1.if语句

语法结构:if(条件){
//实现我们的逻辑
}
import java.util.Scanner;
public class If {
	public static void main(String[] args) {
		int bonus =500;
		Scanner input = new Scanner(System.in);
		System.out.println("请输入奖金,猜是否与规定的数目相符:");
		int in = input.nextInt();
		//条件结够
		if(in == bonus){	
		System.out.println("恭喜您中500万!");
		System.out.println("you can travel around the world!");
	    }
	}
}

2.if...else语句

if(条件){
//实现逻辑
}else{
//实现逻辑
}

import java.util.Scanner;
public class If {
	public static void main(String[] args) {
		int bonus =500;
		Scanner input = new Scanner(System.in);
		System.out.println("请输入奖金,猜是否与规定的数目相符:");
		int in = input.nextInt();
		//条件结构
		if(in == bonus){	
		System.out.println("恭喜您中500万!");
		System.out.println("you can travel around the world!");
	    }else{
	    	System.out.println("革命尚未成功,同志仍需努力!!!");
	    }
	}
}
3.if(条件)...else if(条件)...(接N个)...else

注意:a.else if(条件): 条件的约束,和前面说的if(条件),俩者是等价的.
           b.else if 可以有多个
           c.else 可以省略掉的, 但是即使没有匹配所有条件,我们依然建议必须有else,来保证 语句的完整和可读性.
           d.如果满足条件只需要执行一行代码,{}也是可以省略的,但是不建议这么做.
/*
仅会执行第一次匹配到的条件,之后就会退出我们的条件语句
*/
public class IfDemo {
	public static void main(String[] args) {
		int age = 23;
		if(age>=60){
			System.out.println("老年");
		}else if(age<60 && age>=40){
			System.out.println("中年");
		}else if(age>=18 && age<40){
			System.out.println("少年");
		}else if(age<18){
			System.out.println("未成年");
		}		
	}
}


注意:条件控制语句可以彼此嵌套使用;

/*
建议: 虽然条件判断语句可以彼此嵌套,而且也没有嵌套层数的限制,但是过多的嵌套很影响可读性。
所以要避免过多的嵌套,一般最多建议嵌套3层。
*/
public class IfMutile {
	public static void main(String[] args){
		boolean isWeekday = true;
		boolean isRain = false;
		
		int num = 10;
		if(isWeekday){
			if(num>5){
				System.out.println("play computer");
			}
			else{
				System.out.println("追剧");
			}
		}else if(isRain){
			System.out.println("不进行活动");
		}
	}
}


4.switch case语句

语法结构:
switch(判断值){
case 值1:
break;           //跳出我们匹配到的条件, break 可以省略的.如果省略掉break. 那么代码将会在第一个匹配成功的条件,
                               一直向下继续执行我们的switch语句,直到遇到break为止.

case 值2:
break;
.......
case 值n:
break;

default:      //可以省略,而且default 可以放到任何的位置 .作用:当匹配不到任何条件的时候,执行的内容.
}

import java.util.Scanner;

public class SeasonSelect {
	public static void main(String[] args){
		System.out.println("请输入一个月份:");
		Scanner sc = new Scanner(System.in);
		int num = sc.nextInt();	
		
		switch(num){
		case 3:
		case 4:
		case 5:
			System.out.println("春天");
		break;
		case 6:
		case 7:
		case 8:
			System.out.println("夏天");
		break;
		case 9:
		case 10:
		case 11:
			System.out.println("秋天");
		break;
		case 12:
		case 1:
		case 2:
			System.out.println("冬天");
		break;
		default:
			System.out.println("请输入正确的月份:");
		}
	}
}


三.循环控制

1.while循环

语法结构:while(循环条件){
//循环实现的代码
}
/**
	 * 求1-50(俩边都闭区间), 所有偶数的和.
最终输出结果.
	 */
public class Sum {
	public static void main(String[] args) {
		int minNum = 1;
		final int MAX_NUM = 50;
		int sum = 0;
		while(minNum<=MAX_NUM){
			
			if((minNum % 2)==0){
				sum = sum + minNum;			
			}
			minNum++;
		}
		/*
		while(minNum<=MAX_NUM){
			sum += (minNum%2==0)?minNum:0;
			minNum++;
		}
		*/
		System.out.println(sum);
	}
}

2.do .. while循环

语法结构:do{
//实现的代码
}while(循环的条件);

/*
	特点: 先执行后判断;不管条件是否成立,都会至少先执行一次do 中的代码
	
*/

public class DoWhile{
	
	public static void main(String[] args){
		
		int maxNum = 10;
		int minNum = 1;
		
		//打印1到10之间的自然数
		do{
			System.out.println(minNum);
			minNum++;
		}while(minNum<=maxNum);	
	}	
}


3.for循环

语法结构:
for(循环变量初始化 ;循环条件判断; 循环变量的改变){
//循环需要实现的逻辑
}
public class ForDemo1{
	
	public static void main(String[] args){
			int minNum = 1;
			final int MAX_NUM = 50;
			int sum = 0;
			
			/*
			for(int i=1;i<=MAX_NUM;i++){
				if(i%2 == 0){
					sum+=i;
				}
			}
			*/
			
			/*
			int i = 0;
			for(;i<=MAX_NUM;){    //括号中的三部分都可省略,但;不可省略
				if(i%2==1){
					sum+=i;
				}
				i++;
			}
			*/
			
			for(int i = 0,num =0;i<100;i+=4,num++){ //循环变量可以定义多个,对于循环变量的改变,我们也可以同时改变多组变量
				System.out.println("i:"+i);
				System.out.println("num:"+num);
			}		
	}	
}
注意:俩个关键字: 应用到循环控制中,continue的含义是跳出当次的循环,break的含义是跳出整个循环
continue:
在循环的代码体中,如果遇到continue, 则会跳出当次循环,循环体内continue之后的代码都不会执行,并且循环变量进行一次改变操作,之后再次进行条件判断,如果满足条件,则进入循环,否则直接结束循环; 跳出的仅是continue外层直接包裹的循环.

break:
在循环的代码体中,如果遇到break,则会跳出本循环代码块,break后的代码不会执行。并且整个循环的过程结束。break后退出的循环也是直接包围break的循环。


for循环中嵌套的层数没有限制,编译不会出错。但是建议最多嵌套2层
//外层循环控制行数,内层循环控制每行多少个*
public class ForDouble {
public static void main(String[] args){
		
		for(int j = 1;j<=5;j++){ 
			/*
			输出: *
			      **
			      ***
			      ****
			      *****
			*/
			for(int i =1;i<=j;i++){
				System.out.print("*");
			}
			System.out.println("");
		}
		
		//----------------------------------------
		System.out.println();
		for(int j = 1;j<=5;j++){
			/*
			输出: 
				  *****
			          ****
				  ***
				  **
				  *
			      
			*/
			for(int i =1;i<=(6-j);i++){
				System.out.print("*");
			}
			System.out.println("");
		}
	}
	
}



 
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值