0507课堂笔记--循环结构

1.分支结构 swithch结构 for循环

1.1分支结构

单分支 多分支 嵌套分支

1.2商品打折案例

package cn.tedu.structure;
import java.util.Scanner;
//本类 用于练习商品打折案例
public class TestDiscount {
	public static void main(String[] args) {
		System.out.println("请输入价格:");
		double price =new Scanner(System.in).nextDouble();
		if(price<0) {//健壮性
			System.out.println("您输入的价格有误!");
			return;//结束程序
		}
	//	double count=price;	/**初始值是商品的原价*/	
		if (price>=10000) {
			price=price*0.1;
		}else if (price>=5000) {
			price=price*0.5;
		}else if(price>=2000) {
			price=price*0.8;
		}else if(price>=1000){
			price=price*0.9;
		}
		System.out.println("您实际应支付:"+price);
	}
}

注意程序的 健壮性

2.switch结构

switch case 语句用来判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。当一个case成立,从这个case向后穿透所有case,包括default,直到程序结束或者遇到break程序才结束

package cn.tedu.structure;
//本类用于练习switch结构
public class TextSwitch {
	public static void main(String[] args) {
		/**总结1:变量a的类型支持五种byte short char int String
		 * 总结2:break表示结束当前的case,如果不加break,会向后穿透所有的case,包含default
		 * 总结3:default是一个保底选项,可加可不加
		 * default是如果没有匹配到任何case时执行的选项*/
		//一般都会 加上break
		int a=3;
		switch(a) {
			case 1:System.out.println(1);break;
			case 2:System.out.println(2);break;
			case 3:System.out.println(3);break;
			case 4:System.out.println(4);break;
			case 5:System.out.println(5);break;
			default:System.out.println(0);
		}
		String s="Monday";
		switch(s) {
			case "Monday":System.out.println("星期一吃A");
			case "Tuesday":System.out.println("星期一吃B");
			case "Wednesday":System.out.println("星期一吃C");
			case "Thursday":System.out.println("星期一吃D");
			case "Friday":System.out.println("星期一吃E");
			case "Saturaday":System.out.println("星期一吃F");
			case "Sunday":System.out.println("星期一吃G");
			default :System.out.println("想吃啥吃啥 ");
		}		
	}
}

3.循环结构

3.1for形式

for(开始条件;循环条件;更改条件){循环体}

package cn.tedu.structure;
//本类用于测试 for循环 
//DEBUG调试   :可以查看程序执行的具体细节  F6进行下一步
//添加断点:双击目标语句;结构性语句无法添加断点
public class TextFor {
	public static void main(String[] args) {
		/** for(开始条件;循环条件;更改条件){循环体} 从哪开始,到哪结束,如何让变化*/

//		m0();
//		m1();
//		m2();
		m3();
	}

	public static void m3() {//求[1,100]的所有偶数的和
		int count=0;
		for(int i =1;i<=100;i++) {
			if(i%2==0) {
				count++;
			}
		}
		System.out.println(count);
	}

	public static void m2() {
		int sum = 0;
		for (int i = 1; i < 101; i++) {
			if (i % 2 == 0) {
				sum = sum + i;
			}
		}
		System.out.println("1到 100所有偶数的和为:" + sum);

	}

	public static void m0() {
		for (int i = 1; i <= 10; i++) {
			System.out.println(i);
		}
		for (int i = 10; i >= 0; i--) {
			System.out.println(i);
		}
	}

	public static void m1() {
		int sum = 0;
		for (int i = 1; i <= 100; i++) {
			sum = sum + i;
		}
		System.out.println(sum);
	}

}

DEBUG的测试代码

3.2嵌套for循环

3.2.1概述

存在至少2层for循环,根据外层的条件,判断里层能否执行
如果能执行,就把里层代码都循环完毕后,再继续判断是否执行外层循环的下一次循环

3.2.2案例:嵌套for循环打印三行五列矩形

package cn.tedu.structure;
//本类用于嵌套for循环
public class TestForDemo01 {
	public static void main(String[] args) {
		//method1();
		method2();//打印一个三行五列的矩形		
	}

	public static void method2() {
		for (int j = 1; j <= 3; j++) {//外层循环控制行数
			for (int i = 1; i <= 5; i++) {//外层循环控制列数
				System.out.print("*");
			}
			System.out.println();//用空白行来换行
		}
	}

	public static void method1() {
		/**总结1:外层循环执行一次,内层循环执行一轮
		 * 总结2:外层循环控制的是执行轮数,循环三次,执行三轮  ;
		 *      内层循环控制的是每一轮循环中执行的次数*/
		for(int i=1;i<=3;i++) {/**外层循环*/
			System.out.println();
			System.out.println(i);
			for(int j=1;j<=5;j++) {/**内层循环*/
				System.out.print(j);
			}
		}
	}
}

总结1:外循环执行1次,内循环执行多次
总结2:外循环控制行,内循环控制列

3.2.3 练习:左直角三角形

package cn.tedu.structure;
//利用for循环打印左直角三角形
public class TextForTriangle {
	public static void main(String[] args) {
		for(int i=1;i<=5;i++) {
			/**注意:需要修改内层循环的循环条件,让j的最大值随i
			 * 来改变,不能写成固定值,否则变成矩形*/
			for(int j=1;j<=i;j++) {
				System.out.print("*");
			}
			System.out.println();
		}
	}
}

3.2.4练习:九九乘法表

package cn.tedu.structure;
//本类用于测试 完成九九乘法表
public class TestFor99Excel {
	public static void main(String[] args) {
		for(int i=1;i<=9;i++) {
			for(int j=1;j<=i;j++) {
				/**拼接打印算式,后面加了一个“\t”表示表格格式,\t也称为制表符*/
				System.out.print(j+"*"+i+"="+(i*j)+"\t");
			}
			System.out.println();
		}
	}
}

\t 也称为制表符

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值