-->

signed

QiShunwang

“诚信为本、客户至上”

顺序结构,分支结构,for循环Day04

2021/6/3 18:34:53   来源:

顺序结构:
比如main(),从第一句代码开始,依次执行每一行代码
分支结构:
1)单分支
if(判断条件){ 符合判断条件后指定的代码}
执行:先判断是否符合条件,如果符合,就执行大括号里的代码
如果不符合,跳过当前if判断,执行后面的代码
2)多分支
if(判断条件){符合判断条件后执行的代码
}else{不符合判断条件的其他情况,执行else当中的代码}

3)嵌套分支
if(判断条件1){
   符合条件1,执行此处的代码1
}else if(判断条件2){
   不符合条件1,但是符合条件2,执行此处的代码2
}else if(判断条件3){
   不符合前面的两个条件,但是符合条件3,执行此处的代码3
}else{
   以上条件都不符合,属于其他情况,执行此处的代码
}

if语句练习

package cn.tude.basic;

import java.util.Scanner;
/* 嵌套分支结构当出现if(true)之后,其后的代码将不再执行*/
/*
 *本类用来判断学员分数档位
 */
public class Test {
public static void main(String[] args) {
	//1提示并接受学员的分数
	System.out.println("请输入你的分数");
	int score=new Scanner(System.in).nextInt();
	
	//为了增加程序健壮性,如果用户输入数据不法直接退出程序
	
	/*
	 * 90分以上优秀
	 * 80  -90良好
	 * 70-79中等
	 * 60-69  及格
	 * 60分以下不及格
	 * 
	 */
	//判断分数的段位并输出结果

	if (score<0||score>100) {
		System.out.println("输入数据非法");
		
	}else {
		
		if(score>=90) {
			System.out.println("优秀");
		}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(变量名){
       case value1 : 要操作的语句;break;//可以有多个case,break可选
       case value2 : 要操作的语句;break;//可以有多个case,break可选
       case value3 : 要操作的语句;break;//可以有多个case,break可选
       default : 要操作的语句;//可选,如果前面的case都没匹配到,执行default
}

记忆点:
支持的类型:byte short char int String
变量名的类型与value必须保持一致
case可以有多个,如果匹配到,就执行当前case的语句
如果匹配到,且没有break,会发生穿透的现象
如果所有case都未匹配到,并且配置了default,会执行default的代

 练习switch结构

package cn.tude.basic;
/*
 * 本类用来练习switch结构
 * switch 具有穿透现象
 * 不想穿透可加break结束穿透
 */
/**
 * 1.变量a的类型byte short char int  String(jdk1.5) 枚举
 * 2.会拿着变量a的值依次与case后得值作比较 如果不加break,会向后穿透所有的case,包括default
 * 3.如果设置default选项,并且没有任何case与之匹配,就执行default
 * 4.break与default是可选项,根据具体业务决定加不加。
 * @author Administrator
 *
 */
public class TestSwitch {
	//创建程序入口
	public static void main(String[] args) {
		//定义一个int类型变量
		int a=3;
		//完成switch结构的测试
		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;
			default:System.out.println(0);break;
			
		
		}
		
	}

}

运行结果

练习二

package cn.tude.basic;
/*
 * 本类用来测试switch结构2
 */
public class TestSwitch2 {
public static void main(String[] args) {
	String a="星期四";
	switch(a) {
	//ctrl+alt+向下键快速复制一行
	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("想吃点啥吃点啥");
	

	}
}
}

运行结果



=======================================
循环结构
可以重复的多次执行同一件事
for(开始条件; 循环条件 ; 更改条件){
      满足循环条件后,要执行的循环体
}
记忆点:
1)从哪开始  到哪结束 如何变化
2)开始条件只会在第一轮定义循环变量时执行一次,后面的循环均不执行此条件
嵌套for循环
格式:for里有for
总结:1.外层循环执行一次,内层循环执行多次
2.外层循环控制的是行数,内层循环控制的是列数

测试循环结构for结构

package cn.tude.basic;
/*
 * 本类用来测试循环结构for结构
 */
public class TestFor {
	//创建程序入口
	public static void main(String[] args) {
		/*i=0开始条件 i<5循环条件 i++更改条件*/
		/* for(开始条件;循环条件 更改条件){执行语句}
		 */
		for (int i = 0; i <4; i++) {
			System.out.println("又不是没那条件,干就完了!");			
		}
		//需求打印一下一到十
		for (int i = 1; i < 11; i++) {
			System.out.println("\t"+i);
			
		}
		for (int i = 10; i >0; i--) {
			System.out.println("\t\t"+i);
			
		}
		//需求 打印 8  88  888  8888
		/* 更改条件  j=j*10+8; */
		for (int i = 8; i <9000 ; i=i*10+8) {
		
			
			
			
			System.out.print(i+",");
			
		
		}
		System.out.println();
		
		
	}

}

运行结果

需求 :1-100内所有偶数的个数 1-100内所有偶数的和  1-100内所有数的和

package cn.tude.basic;

public class TestFor2 {
public static void main(String[] args) {
	m1();
	m2();
	m3();
}
/*
 * 需求 1-100内所有偶数的个数
 */
private static void m3() {
	int k=0;

	for (int i = 2; i < 101; i+=2) {
		k++;
		
		
	}
	System.out.println("1-100内所有偶数的个数为"+k+"个");
	//方式二
	k=0;
	for (int i = 1; i < 101; i++) {
		if(i%2==0) {
			
			k++;
		}
	}
	System.out.println("1-100内所有偶数的个数为"+k+"个");
	
}
/*
 * 需求 1-100内所有偶数的和
 */

private static void m2() {
	//方式一
	int j=0;

	for (int i = 2; i < 101; i+=2) {
		j+=i;
		
		
	}
	System.out.println("1-100内所有偶数的和为"+j);
	//方式二
	j=0;
	for (int i = 1; i < 101; i++) {
		if(i%2==0) {
			j+=i;
			
		}
	}
	System.out.println("1-100内所有偶数的和为"+j);
	
}
/*
 * 需求 1-100内所有数的和
 */

private static void m1() {
	int sum=0;

	for (int i = 1; i < 101; i++) {
		
		sum+=i;
		
		
	}
	System.out.println("1-100内所有数的和为"+sum);
	
}
}

运行结果为

嵌套for循环

package cn.tude.basic;

/*
 * 本类用于嵌套for循环
 */
public class TestForDemo {

	public static void main(String[] args) {
		/*
		 * 总结:外层循环执行一次(控制轮数),外层循环执行多次(在每一轮循环中执行的次数)
		 */
		for (int i = 1; i < 4; i++) {
			
			System.out.println("外层循环第"+i+"次");
			for (int j = 1; j < 6; j++) {
				System.out.println("内层循环第"+j+"次");

			}
			System.out.println();

		}
		/*
		 * 外层循环控制的行数
		 * 内层循环控制的列数
		 */
		System.out.println("***********************打印矩形*****************************");
		for (int i = 0; i < 3; i++) {
			for (int j = 0; j < 5; j++) {
				System.out.print("*");
			}
			System.out.println();//用空白行来换行
			
			
		}
		System.out.println("*****************************************************************");
		//打印九九乘法表
		for (int i = 1; i < 10; i++) {
			for (int j = 1; j <= i; j++) {
				System.out.print(j+"*"+i+"="+i*j+"\t");
			}
			System.out.println();
			
		}
		
		
	}
}

运行结果