流程控制语句

  • if语句
// 单一条件
   /**
    * if(布尔表达式A){
    *  语句B
    * }
    * A为true 执行B,否者不执行
    *  
    * 可以省略if语句的花括号,编译器在识别代码时默认添加,只括if语句下一行代码,一般不会省略,使用花括号提高代码可阅读性
    * /
    int itemNum=100;
    int buyNum=1000;
//  if(buyNum<=itemNum)
//    System.out.println("执行购买商品的业务逻辑"); //结果为false不执行
//  if(buyNum<=itemNum)
//  System.out.println("执行购买商品的业务逻辑");
//  System.out.println("hahahaha");//执行了第二个结果
//
// 二选一
   /**
    * if(布尔表达式A){
    *   语句B
    *  }else{
    *   语句C
    *  }
    *  如果A为true,执行B,否则执行C,B和C无论如何都会执行其中一个
    * /
   if(buyNum<=itemNum){
       System.out.println("执行购买商品的业务逻辑");
   }else{
       System.out.println("您购买的商品数量超标了");
   }

//   多分枝
    /**
     *if{
     * 	语句B
	 * }else if(布尔表达式A1){
	 * 	语句B1
	 * }else if(布尔表达式A2){
	 * 	语句B2
	 * }..
	 * else{
	 * 	语句B3
	 * }
	 * 	如果A为true,执行B,后续代码不在判断,if语句结束
	 * 	如果A为false,继续判断A1,如果A1为true,执行B1,if语句结束
	 * 	else匹配所有不满足条件的情况下执行B3
	 */
 //		需求:  星期一:上班  星期二:加班  星期三:不想写代码  星期四:通宵写代码  星期五:离职   星期六:睡大街  星期天:找工作  
     	int week=7;(这里输入数值)
		if(week==1) {
			System.out.println("上班");
		}else if(week==2) {
			System.out.println("加班 ");
		}
		else if(week==3) {
			System.out.println("不想写代码  ");	
		}
		else if(week==4) {
			System.out.println("通宵写代码  ");	
		}
		else if(week==5) {
			System.out.println("离职  ");	
		}
		else if(week==6) {
			System.out.println("睡大街 ");	
		}else if(week==7) {
			System.out.println("找工作 ");
		}else {
			System.out.println("请选择正确的日期 ");
		} //显示结果为"找工作"
     
        int money=5000000;
        char home='有';
        if(10000000<=money && home=='有') {
    	    System.out.println("我们结婚吧");
        }else {
     	    System.out.println("你是个好人");
        }

练习

1、假设有整型变量x,判断x是否为偶数,若为偶数,则在控制台上打印“输入的数值是偶数”。
无论x是否为偶数,最后都要在控制台上输出x的值
2、有一个数字为45327,判断该数字是否能被13整除,是否能被17整除。
3、判断2064年是不是闰年。
闰年判断规则:
能被400整除的是闰年
能被100整除,不能被400整除的不是闰年
能被4整除,不能被100整除的是闰年
其他的不是闰年
4、有两个整型变量x,y,请编写代码在控制台上输出x与y中值较大的那个数。

链接: 答案点击这里
  • switch语句
	public static void main(String[] args) {
//		switch语句
		/**
		 * switch(表达式X){
		 * case 常量:
		 *      语句块A;
		 *      break;
		 * case 常量:
		 *      语句块;
		 *      break;
		 *      ...
		 *  default:
		 *     语句块B;
		 *     
		 * }
		 * 执行顺序:
		 * switch一旦碰到第一次case区配,程序就会跳转到这个标签位置,
		 * 开始顺序执行以后所有的程序代码,而不管后面的case条件是否匹配
		 * 直到碰到break关键字或者结束switch语句的大括号为止
		 * 
		 * ①case只能是常量不能是变量或表达式
		 * ②表达式X的值只可以接受四个基本数据类型和对应包装类(int、byte、char、short),枚举型,jdk1.7之后表达式X可以接受string
		 * ③switch case中的值必须要与switch表达式的值具有相同的数据类型
		 * ④不允许有重复的case取值
		 * ⑤switch的结束:遇到break才结束否则直到switch语句块结束
		 * ⑥case之间与default没有顺序。先判断所有的case,没有匹配的case执行default。因此一般将default放在case后面
		 *
		 */
//		10~20之间:8000块   20~30:7000块   30~40:6000块   40~50:5000块  50~60 :4000块  其他0
		int age=98;
		int level=age/10;
//		switch(level) {
//		 case 1:
//			 System.out.println("奖金8000");
//			 break;
//		 case 2:
//			 System.out.println("奖金7000");
//			 break;
//		 case 3:
//			 System.out.println("奖金6000");
//			 break;
//		 case 4:
//			 System.out.println("奖金5000");
//			 break;
//		 case 5:
//			 System.out.println("奖金4000");
//			 break;
//		default:
//			 System.out.println("奖金0");
//		 }		
	显示奖金为0
		switch(level) {
		default:
			 System.out.println("奖金0");
		 case 1:
			 System.out.println("奖金8000");
//			 break;
		 case 2:
			 System.out.println("奖金7000");
//			 break;
		 case 3:
			 System.out.println("奖金6000");
			 break;
		 case 4:
			 System.out.println("奖金5000");
			 break;
		 case 5:
			 System.out.println("奖金4000");
			 break;
		}
//	显示: 奖金0
//		    奖金8000
//	            奖金7000
//		    奖金6000
		
		String name="张三";
		switch(name) {
		 case "张三":
			 System.out.println("小三的爸爸");
			 break;
		 case "李四":
			 System.out.println("小四的爸爸");
			 break;
		 
	 }
//		显示:小三的爸爸
		
//		只要i满足1 2 3 4就会执行语句块A
		int i=5;
		switch(i) {
		 case 1:
		 case 2:
		 case 3:
		 case 4:
			 System.out.println("里面没有10");//语句块A
			 break;
		 case 5:
		 case 10:
			 System.out.println("里面有10和5");//语句块B
			 break;
		}
//		显示:里面有10和5

	}
}

练习

1、如果月份month为1—12的一个月份,输出该月份的天数;如果数字不符合,输出“错误的月份”。
1、3、5、7、8、10、12月天数为31
2月天数为28
4、6、9、11月天数为30

2、用户输入商品名称,显示该商品的价格在这里插入图片描述

链接: 答案点击这里
  • 接受控制台输出
//		String s1="我爱你,中国";
//		System.out.println(s1);//我爱你,中国
//		
//		接收控制台输入
   	Scanner sc=new Scanner(System.in);
//      快捷键:Ctrl+Shift+O (快速打包)

		接收控制台输入的整型
//		int messageInt=sc.nextInt();//这个方法会阻塞,当你在控制台输入数据并按下回车键阻塞解除
//		System.out.println(messageInt);

		接收制台输入的浮点型
//		double messageDouble=sc.nextDouble();//这个方法会阻塞,当你在控制台输入数据并按下回车键阻塞解除
//		System.out.println(messageDouble);

//		接收制台输入的字符串 :得到用户输入的字符串,空格结束
//		String messageString=sc.next();//这个方法会阻塞,当你在控制台输入数据并按下回车键阻塞解除
//		System.out.println(messageString);

   	String message=sc.nextLine();//这个方法会阻塞,当你在控制台输入数据并按下回车键阻塞解除,显示一整行,包含空格
   	System.out.println(message);
  • 随机数
   Random rn=new Random();
//		随机产生int大小内的整型数据
   	int message=rn.nextInt();
   	System.out.println(message);
   	
//		随机产生0-10之间的整型数据:包括0不包括10
   	message=rn.nextInt(10);
   	System.out.println(message);
   	
//		随机产生0-1之间的浮点型数据 不包括1
   	double messageDouble=rn.nextDouble();
   	System.out.println(messageDouble);
   	
//		随机产生10~20的数据
   	int i=(int)(rn.nextDouble()*10)+10;
   	System.out.println(i);

//		产生一个12以内的随机月份,和一个30以内的随机天数,输出该日是本年的第多少天(不考虑闰年)
   	int month=rn.nextInt(12)+1;
   	int day=rn.nextInt(30)+1;
   	if(month==1) {
   		System.out.println("第"+day+"天");
   	}else if(month==2) {
   		System.out.println("第"+(31+day)+"天");
   	}
   	else if(month==3) {
   		System.out.println("第"+(59+day)+"天");
   	}
   	else if(month==4) {
   		System.out.println("第"+(90+day)+"天");
   	}
   	else if(month==5) {
   		System.out.println("第"+(120+day)+"天");
   	}
   	else if(month==6) {
   		System.out.println("第"+(151+day)+"天");
   	}
   	else if(month==7) {
   		System.out.println("第"+(181+day)+"天");
   	}
   	else if(month==8) {
   		System.out.println("第"+(212+day)+"天");
   	}
   	else if(month==9) {
   		System.out.println("第"+(243+day)+"天");
   	}
   	else if(month==10) {
   		System.out.println("第"+(273+day)+"天");
   	}
   	else if(month==11) {
   		System.out.println("第"+(304+day)+"天");
   	}
   	else if(month==12) {
   		System.out.println("第"+(334+day)+"天");
   	}
   	
  • for循环

//	输出一百次我爱你,中国
   	for(int i=0;i<100;i++) { //只执行到99
   		System.out.println("我爱你,中国"+i);
   	}
   	
   	int i;
   	for(i=0;i<100;i++) { //正常输出
   		System.out.println("我爱你,中国"+i);
   	}
   	
   	int i;
   	for(i=0;i<100;) { //执行到100 
   		i++;
   		System.out.println("我爱你,中国"+i);
   	}

   	int i;
   	for(i=0;i<100;) { //跟第一种方法一样
   		System.out.println("我爱你,中国"+i);
   	i++;
   	}
   	
//		死循环:没有循环终止条件或者循环终止条件一直为true,死循环后面的代码会错
   	for(;1<2;) {
   		System.out.println("我爱你,中国");
   	}
   	
   	for(;;) {
   		System.out.println("我爱你,中国");
   	}
   	
   	for(int i=0;;i++) {
   		System.out.println("我爱你,中国");
   	}
   	
   	for(int i=0;;){
   		System.out.println("我爱你,中国");
   	}

练习

1、用for循环改写从1到100的所有奇数相加的和

2、循环得到用户从控制台输入的5个整数,该整数为用户购买商品的价格,计算用户一共需要花费的总金额。

3、随机产生一个10以内的正整数,用户循环输入三个整数,如果用户输入的整数包含随机数,输出“猜对了”;反之,输出“没猜到”。
例如:
随机数为4,用户输入数为:2,3,4。输出:猜对了
随机数为4,用户输入数为:1,2,3。输出:没猜到

链接: 答案点击这里
  • while和do while循环
//		while循环 :先判断后执行
   	/**
   	 * while(布尔表达式){
   	 *  语句块B;
   	 *  循环终止条件c;
   	 * }
   	 * 只要A为true就执行B
   	 */
//	100次我爱你中国
//		int i=0;
//		while(i<100) {
//			System.out.println("我爱你中国"+i"我爱你中国"+i);
//			i++;
//		}
   	
//		死循环:没有在循环终止条件
//		while(true) {
//			System.out.println("我爱你中国"+i);
//		}
   	
//		while(1<2){
//			System.out.println("我爱你中国");
//		}
//		do while:先执行一次,在判断,无论如何do(语句块B)都会执行一次
     /**
      * do {
      *     语句块B
      *     循环终止条件C
      * }while(布尔表达式A)
      *
      */
//		int i=0;
//		do {
//			System.out.println("我爱你中国"+i);
//			i++;
//		}while(i<100);
   	
   	
   	int i=0;
   	do {
   		System.out.println("我爱你中国"+i);
   		i++;
   	}while(i<0);

练习

1、计算1+2+3+…+100的和(提示利用while语句)
2、计算从1到100的所有奇数相加(提示利用while语句)

链接: 答案点击这里

阶段练习

  • 循环中断
//  break:跳出当前循环;直到结束循环
//  continue:跳出本次循环执行下一次循环
   	
   	
//	for循环输出0-99:只输出到0-55
   	for(int i=0;i<100;i++) {
   		if(i==56) {
   			break;
   		}
   		System.out.println(i);
   	}
   }//只输出到55


   for(int i=0;i<100;i++) {
   		if(i==56) {
   			continue;
   		}
   		System.out.println(i);
   	}
   }//56不输出,其他都输出

练习

1、用户输入数字,如果是0,退出程序,界面如下:
在这里插入图片描述

在这里插入图片描述
2、得到用户从控制台输入的五个正整数,该整数为用户购买商品的价格,如果用户输入整数为0或负数,不计入统计,结束输入后计算用户一共需要花费的总金额。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值