Java小白StudyDay04--分支结构 Switch结构 for循环结构

一、分支结构

1.单分支结构

单分支结构比较简单, if (判断条件){ 符合判断条件后指定的代码}
执行:先判断是否符合条件,如果符合条件,就会执行过大括号里边的代码 。
如果没能满足条件,就会跳过 if 语句,程序继续运行。代码如下:

public class Day04 {

	public static void main(String[] args) {
		int a=10;
		if(a>5) {
			System.out.println("我有"+a+"铅笔");
		}
	}
}

2.多分支结构

多分支结构比起单分支结构比较方便一点是如果 if 之后的判断条件没能够执行则会执行 else 里的语句。多分支结构组成如下:
if(判断条件){符合判断条件后执行的代码}
else{不符合判断条件的其他情况,执行else当中的代码}
在这之后我可以做一个小案例,测试我们的5元钱能够买几支铅笔。代码如下:

package cn.tedu.method;
import java.util.Scanner;
public class Day04 {
	public static void main(String[] args) {
		System.out.println("5元钱能够买几支铅笔:");
		int a=new Scanner(System.in).nextInt();
		if(a<=5) {
			System.out.println("确实能买到"+a+"支铅笔");
		}else {
			System.out.println("买不到这么多");
		}
	}
}

3.嵌套分支语句

嵌套分支就是运用多次ifelse 语句来实现多重判断。具体形式是这样的:
if(判断条件1){
 符合条件1,执行此处的代码1
}else if(判断条件2){
 不符合条件1,但是符合条件2,执行此处的代码2
}else if(判断条件3){
 不符合前面的两个条件,但是符合条件3,执行此处的代码3
}else{
 以上条件都不符合,属于其他情况,执行此处的代码4
}
掌握之后我们可以做一个小的案例,关于商场根据消费水平来进行打折的案例:需求:接收用户输入的商品的原价,满10000打骨折,满5000打5折,满2000打9折。代码如下:

package cn.tedu.study1;
import java.util.Scanner;
//本类用于测试商品打折案例
public class Day04TestDiscount {
	public static void main(String[] args) {
		//提示并接收用户输入的原价
		System.out.println("请输入商品的原价:");
		double price = new Scanner(System.in).nextDouble();
		//定义一个变量通用来保存实际支付的结果
		double count = price;//注意count的初始值是商品的原价
		if(price>=10000) {		//满10000
			count = price * 0.1;
			System.out.println("您实际应该支付的金额为:"+count);
		}else if(price>=5000) {	//满5000
			count = price * 0.5;
			System.out.println("您实际应该支付的金额为:"+count);
		}else if(price>=2000) {	//满2000
			count = price * 0.9;
			System.out.println("您实际应该支付的金额为:"+count);
		}	
	}
}

用户可以在控制台输入消费金额,然后程序自动给出打完折的实际应付金额。

4.延伸

我们的else后的语句块里还可以进行一定的操作,这里我们还是直接以案例的形式给大家呈现,我们可以做一个学生成绩评定等级的案例:要求输入的成绩是比较符合实际情况的,等级分为优秀,良好,中等,及格,不及格。代码如下:

package cn.tedu.study1;
//本类用于判断学员分数的档位
import java.util.Scanner;
public class Day04TestScore {
	public static void main(String[] args) {
		//提示并接收学员的分数
		System.out.println("请输入你的分数:");
		int score = new Scanner(System.in).nextInt();
		
		//为了增强程序的健壮性,如果用户输入的数据不符合规则,就结束
		if(score<=0 || score>=100) {
			System.out.println("输入数据不合法,请重新输入!!!");
		}else {
			//判断分数的段位,并输出结果
			if(score >=90) {
				System.out.println("优秀!");
			//}else if(score >=80 && score<=89) {
			}else if(score >=80) {
				System.out.println("良好!");
			}else if(score >=70) {
				System.out.println("中等!");
			}else if(score >=60) {
				System.out.println("及格!");
			}else {
				System.out.println("你好意思吃饭吗?");
			}
		}
	}
}

二、switch结构

1.switch判断int类型变量

switch同样也能做到判断的目的,但是它有自己的特色。下边我们来直接看switch结构的组成: switch(变量名)
{
case value1 : 要操作的语句;break;  //可以有多个case,break可选
case value2 : 要操作的语句;break;         //可以有多个case,break可选
case value3 : 要操作的语句;break;         //可以有多个case,break可选
default : 要操作的语句;       //可选,如果前面的case都没匹配到,执行default
}
switch之后括号里的变量名承载的变量类型只能是byte short char int String (jdk1.5以后支持) ,程序执行会拿着变量名承载变量的值,依次与case后的值作比较,如果不加break,会向后穿透所有case,包括default如果设置了default选项,并且没有任何case匹配到的话,就会执行default的选项 .break与default是可选项,根据具体业务来决定加不加。如果所有case都未匹配到,并且配置了default,会执行default的代码。如果运用了break 程序跳出当前语句 。代码如下:

package cn.tedu.study1;

import java.util.Scanner;
//本类用于练习switch结构
/**
 * 总结:
 * 1.变量a的类型byte short char int String(jdk1.5以后支持)
 * 2.会拿着变量a的值依次与case后的值作比较,如果不加break,会向后穿透所有case,包括default
 * 3.如果设置了default选项,并且没有任何case匹配到的话,就会执行default的选项
 * break与default是可选项,根据具体业务来决定加不加
 * 
 */
public class Day04TestSwitch {

	public static void main(String[] args) {
		//定义一个变量
		int a=new Scanner(System.in).nextInt();
		switch(a) {
		case 1:System.out.println("打你一下");break;
		case 2:System.out.println("打你两下");break;
		case 3:System.out.println("打你三下");break;
		case 4:System.out.println("打你四下");break;
		case 5:System.out.println("打你五下");break;
		default:System.out.println(" 大错特错  ");
		}
	}

}

2.switch判断String类型变量

练习,创建一个String类型的变量,然后我们用switch语句去操作。代码示例如下:

 package cn.tedu.study1;
//本类用于练习switch结构
public class Day04TestSwitch2 {
	public static void main(String[] args) {
		//定义一个变量
		String s="星期四";
		//Ctrl+Alt+向下键-----快速向下复制本行代码
		switch(s) {
		case "星期一":System.out.println("星期一喝烩面");break;
		case "星期二":System.out.println("星期二喝拉面");break;
		case "星期三":System.out.println("星期三喝杂酱面");break;
		case "星期四":System.out.println("星期四喝拌面");break;
		case "星期五":System.out.println("星期五喝炒拉面");break;
		case "星期六":System.out.println("星期六吃牛排");break;
		case "星期日":System.out.println("星期日吃海鲜");break;
		default:System.out.println(" 想吃点啥就吃点啥吧  ");
		}
	}

}

三、循环结构

1.for循环

当我们需要多次重复的执行某些代码时,我们不可能打印或者编写多次,这个时候就需要我们去运用for语句来实现此功能。for语句的结构如下:
for(开始条件; 循环条件 ; 更改条件){
满足循环条件后,要执行的循环体}
 当我们编写for语句的时候一定要有清晰的思路,这就要求我们对其几个记忆点有较深的认识;记忆点如下:
1)从哪开始 到哪结束 如何变化
2)开始条件只会在第一轮定义循环变量时执行一次,后面的循环均执行此条件
嵌套for循环
格式:for里有for
总结:1.外层循环执行一次,内层循环执行多次
3)外层循环控制的是行数,内层循环控制的是列数
下边我们用代码案例测试for循环,要求: 打印4次自己的宣言,打印一下1~10,打印一下从10到1,打印一下打印一下8,88,888,8888,代码如下:

package cn.tedu.study1;
//本类用于测试循环结构for结构
public class Day04TestFor {
	public static void main(String[] args) {
		//需求:打印4次自己的宣言
		//格式:for(开始条件;循环条件;更改条件){符合循环条件执行的循环体}
		for(int i=1;i<5;i++) {
			System.out.println("越努力的人越幸运!");
		}
		
		//需求:打印一下1~10
		//从哪开始  到哪结束  如何变化
		for(int m=0;m<11;m++) {
			System.out.println(m);
		}
		//需求:打印一下10~1
		for(int n=10;n>0;n--) {
			System.out.println(n);
		}
		//需求:打印一下8,88,888,8888,
		for(int a=8;a<88888;a=a*10+8) {
			System.out.print(a+" ");
		}
		
	}
}

2,fro循环体加入if判断语句

当我们在for循环的循环体中加入了if判断语句,每一次的for循环都会去判断是否符合if的判断条件,我们直接以案例来测试一下,要求:分别求出1~100以内的数的和, 1~100偶数的和, 1~100以内奇数的个数。代码如下:

package cn.tedu.study1;
//本类用于测试循环结构for结构
public class Day04TestFor2 {
	static int sum=0;
	public static void main(String[] args) {
		m1();
		m2();
		m3();
	}
	//需求:求[1~100]以内奇数的个数
	private static void m3() {
		for(int a=0;a<=100;a++) {
			if(a%2==1) {
				sum=sum+1;
			}
		}
		System.out.println("[1~100]以内奇数的个数:"+sum);
		sum=0;
	}
	//需求:求[1~100]以内偶数的和
	private static void m2() {
		
		for(int a=0;a<=100;a++) {
			if(a%2==0) {
				sum=a+sum;
			}
		}
		System.out.println("[1~100]以内偶数的和为:"+sum);
		sum=0;
	}
	//需求:求[1~100]以内数的和
	private static void m1() {
		for(int a=0;a<=100;a++) {
			sum=a+sum;			
		}
		System.out.println("[1~100]以内数的和为:"+sum);
		sum=0;
	}		
}

3.嵌套for语句

嵌套for语句的字面意思就是在for语句的循环体中继续加入for语句,来做行和列的打印。外层循环执行一次(控制轮回次数),内层循环执行多次(控制每次轮回执行次数)。具体操作代码如下:

package cn.tedu.study1;
//本类用于测试嵌套for语句
public class Day04TestForDemo {

	public static void main(String[] args) {
		/**外层循环执行一次(控制轮回次数),
		 * 内层循环执行多次(控制每次轮回执行次数)
		 */
		for(int i=1;i<=3;i++) {
			System.out.println("外层循环的第:"+i+"轮");
			for(int j=1;j<=4;j++) {
				System.out.println("内层循环的第:"+j+"轮");
			}
		}
		System.out.println("********打印矩形********");
		//三行五列
		for(int i= 1;i<=3;i++) {			
			for(int m= 5;m>=1;m--) {
				System.out.print("*");
			}
			System.out.println(" ");
		}
	}
}

运行程序:
控制台效果

4.拓展9*9乘法表

package cn.tedu.method;
public class Day04TestForExpand {
	public static void main(String[] args) {
		for(int m=1;m<=9;m++) {
			for(int n=1;n<=m;n++) {
				System.out.print(m+"*"+n+"="+m*n+"     ");
			}System.out.println(" ");		
		}
	}		
}

运行程序:
控制台效果

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值