顺序结构:
比如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();
}
}
}
运行结果