任何复杂的程序逻辑都可以通过三种结构来实现:
一.顺序结构:从上往下逐行执行,每句必走
二.分支结构:有条件的执行某语句一次,并非每句必走
1.if ... else if结构:多条路

 

3个数升序排列

 

package day04;
import java.util.Scanner;
public class Sequence {
	public static void main(String[] args) {
		/*3.三个数的排序:
			int a=8,b=22,c=55; //升序
			if(a>b){
				int t=a;
				a=b;
				b=t;
			}
			if(a>c){
				int t=a;
				a=c;
				c=t;
			}
			if(b>c){
				int t=b;
				b=c;
				c=t;
			}
			System.out.println("a="+a);
			System.out.println("b="+b);
			System.out.println("c="+c);
		*/
				
		/*
		2.两个数的排序:
			int a=8,b=55; //升序
			if(a>b){
				int t=a;
				a=b;
				b=t;
			}
			System.out.println("a="+a);
			System.out.println("b="+b);
		*/
		Scanner scan = new Scanner(System.in);
		System.out.println("请依次输入三个整数:a,b,c(以空格隔开)");
		int a = scan.nextInt();
		int b = scan.nextInt();
		int c = scan.nextInt();
		System.out.println("您输入的是:");
		System.out.println("a="+a+", b="+b+", c="+c);
		int d = 0,e =0, f = 0;
		if(a>b) {
			d=c>a?b:(c>b?b:c);
			e=c>a?a:(c>b?c:b);
			f=c>a?c:a;
		}else {
			d=c>b?a:(c>a?a:c);
			e=c>b?b:(c>a?c:a);
			f=c>b?c:b;
		}
		System.out.println("升序排列后结果为:");
		System.out.println("a="+d+",b="+e+",c="+f);
		scan.close();
	}
}

 

效果如图:

架构中逻辑构件是什么 逻辑结构体系_if else

2.switch...case结构:多条路

 

 break;-->跳出循环
  优点:效率高、结构清晰
  缺点:整数、相等(不能做范围判断)
   注意点:(1)在每句分支的后边,都必须跟上break(跳出switch);
           (2)case 的value值必须跟switch的参数的类型匹配;

 

           (3)switch后可以跟的数据类型:char,short,byte, 

          int,String(1.7以后的JDK版本可以用),enum(枚举)

 

 

package day04;
import java.util.Scanner;
public class CommandBySwitch {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		System.out.println("请选择功能:1.显示全部记录 2.查询登录记录 0.退出");
		int command = scan.nextInt();
		if(command==1) {
			System.out.println("显示全部记录");
		}else if(command==2){
			System.out.println("查询登录记录");
		}else if(command==0) {
			System.out.println("欢迎下次再来");
		}else {
			System.out.println("输入错误");
		}
		/*switch(command) {
		case 1:
			System.out.println("显示全部记录");
			break;
		case 2:
			System.out.println("查询登录记录");
			break;
		case 0:
			System.out.println("欢迎下次再来");
			break;
		default:
			System.out.println("输入错误");
			break;
		}*/
		scan.close();
	}
}

 

效果如图:

架构中逻辑构件是什么 逻辑结构体系_switch case_02

 

输入年份和月份得出一个月多少天。

 

 

package day04;
import java.util.Scanner;
public class DayOfMonth {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		System.out.println("请输入年份(例如:2012)");
		int year = scan.nextInt();
		System.out.println("请输入月份(例如:1)");
		int month = scan.nextInt();
		boolean flag = (year%4==0 && year%100!=0)||year%400==0;
		switch(month) {
		case 1:
		case 3:
		case 5:
		case 7:
		case 8:
		case 10:
		case 12:
			System.out.println(year+"年"+month+"月有31天");
			break;
		case 4:
		case 6:
		case 9:
		case 11:
			System.out.println(year+"年"+month+"月有30天");
			break;
		case 2:
			if(flag) {
				System.out.println(year+"年"+month+"月有29天");
			}else {
				System.out.println(year+"年"+month+"月有28天");
			}
			break;
		default:
			System.out.println("请输入正确的月份:");
			break;
		}
		scan.close();
	}
}

 

效果如图:

 

架构中逻辑构件是什么 逻辑结构体系_for循环_03

 

三.循环结构:有条件的执行某语句多次,并非每句必走

循环:反复执行一段相同或相似的代码
(1)循环三要素:
循环变量的初始化
循环的条件(以循环变量为基础)
循环变量的改变(向着循环的结束变)
  循环变量:在循环过程中所反复改变的那个数
continue只能用于循环中——>其作用为跳过循环体中剩余语句而执行下一次循环
1.for循环(应用率最高,固定次数适用)
for(初始化条件;判断条件;迭代条件(变量的改变);){
执行的语句 -->循环体
}
执行顺序:
第一次执行时,1.初始化条件(只执行一次)
          2.判断(boolean)
    3.true:进入循环体
        false:进不去,结束循环
从第二次循环开始,每次先执行迭代部分,之后再次进入判断部分,
如果判断部分返回true:进入循环体false:跳出循环,结束循环。
类中的内容:
由系统自动生成1-99之间的数,算十组数相加的和,总分100分,算出最后得分,按-1结束答题。

 

package day05;
import java.util.Scanner;
public class Addition {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int score=0;
		for(int i = 1;i<=10;i++) {
			int a =(int)(Math.random()*100);
			int b =(int)(Math.random()*100);
			int sum =a+b;
			System.out.println("("+i+")"+a+"+"+b+"=?");
			System.out.println("算吧!");
			int calculation = scan.nextInt();
			if(calculation==-1) {
				break;
			}
			if(calculation==sum) {
				score += 10;
				System.out.println("答对了!");
			}else {
				System.out.println("答错了!");
			}
		}
		System.out.println("总分为:"+score);
		scan.close();
	}
}

 

效果如图:

架构中逻辑构件是什么 逻辑结构体系_while循环_04

架构中逻辑构件是什么 逻辑结构体系_架构中逻辑构件是什么_05

2.while结构:(先判断再执行,当...适用)
while循环
初始条件;
while(判断条件){
循环体
迭代部分(变量的改变)
}

类中的内容:
两组求和方法一:

 

package day05;
import java.util.Scanner;
public class Sum {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		long a = 9l;
		long sum1 = 0l;
		while(a<=9999999999l) {
			sum1 += a;
			a=a*10+9;
		}
		System.out.println("9+99+999+...+9999999999="+sum1);
		System.out.println("请输入整数(例如10):");
		int n = scan.nextInt();
		int b = 1;
		double sum2 = 0;
		sum2 +=1;
		System.out.print(b+"+");
		b=2;
		while(b<n){
			sum2 += 1.0/b;
			System.out.print("1/"+b+"+");
			b++;
		}
		sum2 +=1.0/n;
		System.out.println("1/"+n+"="+sum2);
		scan.close();
	}
}

 

 

两组求和方法二:

package day05;
import java.util.Scanner;
public class SumFor {
	public static void main(String[] args) {
		long sum=0,num =9;
		for(int i=1;i<=10;i++) {
			sum +=num;
			num=num*10+9;
		}
		System.out.println("9+99+999+...+9999999999="+sum);
		System.out.println("请输入整数(例如10):");
		Scanner scan = new Scanner(System.in);
		int n = scan.nextInt();
		double sum1 = 0;
		sum1 +=1;
		System.out.print("1+");
		for(int j = 2;j<n;j++) {
			sum1 += 1.0/j;
			System.out.print("1/"+j+"+");
		}
		sum1 +=1.0/n;
		System.out.println("1/"+n+"="+sum1);
		scan.close();
	}
}

 

效果如图:

架构中逻辑构件是什么 逻辑结构体系_架构中逻辑构件是什么_06

3.do...while结构:(先执行再判断,直到...适用)

 

初始条件;
do{
循环体
迭代部分(变量的改变)
}while(判断条件);
猜系统随机生成的数。

 

package day05;
import java.util.Scanner;
public class Guessing {
	public static void main(String[] args) {
		//Math.random()......0.0到0.999999999...
		Scanner scan = new Scanner(System.in);
		int num = (int)(Math.random()*1000+1);//1到1000之内的随机数
		int guess;
		do {
			System.out.println("猜吧!");
			guess = scan.nextInt();
			if(guess==0) {
				break;
			}
			if(guess>num) {
				System.out.println("太大了!");
			}else if(guess<num){
				System.out.println("太小了!");
			}
		}while(guess!=num);
		/*System.out.println("猜吧!");
		int guess = scan.nextInt();
		while(guess!=num) {
			if(guess==0) {
				break;
			}
			if(guess>num) {
				System.out.println("太大了!");
			}else {
				System.out.println("太小了!");
			}
			System.out.println("猜吧!");
			guess = scan.nextInt();
		}*/
		if(guess==num) {
			System.out.println("恭喜你,猜对了!");
		}else {
			System.out.println("下次再来!");
		}
		scan.close();
	}
}

 

效果如图:

 

架构中逻辑构件是什么 逻辑结构体系_for循环_07

架构中逻辑构件是什么 逻辑结构体系_for循环_08