分支结构(两种)
if else 分支
if(布尔表达式){
//如果布尔表达式的值为true
}else{
//如果布尔表达式的值为false
}
switch case分支
switch(表达式){
case 常量表达式1 :
语句序列1
break;
case 常量表达式2 :
语句序列2
break;
...
case 常量表达式n:
语句序列n;
break;
default :
语句序列n+1;
}
注意:
1首先变量的值是多少,根据case值来执行对应的语句块
2如果语句块中不包含break语句,则会从该case一直往下执行
3如果没有对应的值,则执行default当中的语句块。
4在Java1.7之前switch后变量类型只能是byte short int char之后加入了String类型
5若没有break语句则
case语句的顺序会影响最后的结果
default语句的位置也会影响最后的结果
循环结构(3 种)
while 循环
初始化条件;
while( 循环条件 ) {
循环体;
迭代条件;
}
do…while 循环
初始化条件;
do {
循环体;
迭代条件;
}while(循环条件);
for循环
for(初始化条件;循环条件;迭代条件) {
循环体;
}
嵌套循环
1)循环中套循环,一般多行多列时使用,外层控制行,内层控制列
2)执行过程:外层循环走一次,内层循环走所有次
3)建议:嵌套层次越少越好(一般最多2层循环);若必须要通过3层以上才能解决,说明设计有问题
代码练习
1定义方法实现随机产生一个五位的验证码,验证码格式为:长度为5,前四位是大写字母或者小写字母,最后一位是数字。
package com.company;
import java.util.*;
public class Main {
public static void main(String[] args) {
char []chs=new char[52];
for(int i=0;i<chs.length;i++){
if(i<=25){
chs[i]=(char)(97+i);
}else{
chs[i]=(char)(65+i-26);
}
}
String result=" ";
Random r=new Random();
for(int i=0;i<4;i++){
int randomIndex=r.nextInt(chs.length);
result=result+chs[randomIndex];
}
int number=r.nextInt(10);
result=result+number;
System.out.println(result);
}
}
2输入两个正整数m和n,求其最大公约数和最小公倍数。 比如:12和20的最大公约数是4,最小公倍数是60。
import java.util.Scanner;
public class D {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入第一个正整数m");
int m = scanner.nextInt();
System.out.println("请输入第二个正整数n");
int n = scanner.nextInt();
//获取两个数的最大公约数
int min = (m<=n)?m:n;//获取两个数中的较小值
for (int i = min; i>=1 ; i--) {
if (m%i==0&&n%i==0){
System.out.println("两个数的最大公约数为:"+i);
break;
}
}
//获取最小公倍数
int max = (m>=n)?m:n;//获取两个数中的较大值
for (int i = max; i <=m*n ; i++) {
if (i%m==0&&i%n==0){
System.out.println("两个数的最小公倍数为:"+i);
break;
}
}
}
}