逻辑控制
逻辑控制
1.顺序结构
代码的执行顺序和书写顺序是一致的,如果代码的书写顺序改变,则执行顺序也发生变化。
2.分支结构
2.1 if else语句
2.1.1
if(表达式){
语句块1
}else{
语句块2
}
如或表达式为真,则执行语句块1 ,否则,执行语句块2
2.1.2
if(表达式){
语句块1;
}
如果表达式为真,则执行语句块1
2.1.3
if(表达式1){
语句块1;
}else if(表达式2){
语句块2;
}else{
语句块3;
},
如果表达式1为真,执行语句块1,如果表达式2为真,执行表达式2,其他情况执行语句块3
表达式均为布尔表达式
2.2 switch语句
switch一定不能忘记break
不能做switch的参数类型:float double long boolean
能做参数的特殊类型:枚举,字符串
switch不能表达复杂的条件
switch虽然支持嵌套,但是很丑
局限性较大
3.循环结构
3.1 while循环
while(布尔表达式){
语句块;
}
如果表达式为真,那么就执行语句块
public class TestDemo {
//求n的阶乘的和5!+4!=3!=2!=1!
public static void main(String[] args) {
int j = 1;
int n = 5;
int sum = 0;
while (j < n) {
int i = 1;
int ret = 1;
while (i <= j) {
ret = ret * i;
i++;
}
sum = sum + ret;
j++;
}
System.out.println(sum);
}
public static void main3(String[] args) {
//5! = 5*4*3*2*1
//n!
int i = 1;
int n = 5;
int ret = 1;
while(i<=n){
ret =ret *i;
i++;
}
System.out.println(ret);
}
public static void main2(String[] args) { //1-100加和
int i = 1;
int sum = 0;
while (i<100){
sum = sum+i;
i++;
}
System.out.println("总数:"+sum);
i = 1;
int sumOdd = 0;
while (i<= 100){
sumOdd = sumOdd+i;
i +=2;
}
System.out.println("奇数:"+sumOdd);
i = 2;
int sumEVE = 0;
while (i <=100){
sumEVE = sumEVE+i;
i += 2;
}
System.out.println("偶数:"+sumEVE);
}
public static void main1(String[] args) { //打印1-10的数字
int i = 1; //循环初始条件
while(i <=10){ //判断条件不能永远为真就会死循环
System.out.println(i);
i = i+1; //循环改变条件
}
}
}
3.2 break
break的功能是让循环提前结束
结束所有循环
//找到1-10第一个3的倍数
public static void main5(String[] args) {
int i = 1;
while (i <= 10) {
if (i % 3 == 0) {
System.out.println(i);
break;
}
i++;
}
}
3.3 continue
结束本趟循环
public class TestDemo {
//找到1-100之间 既能被3整除,又能被5整除的数字
public static void main(String[] args) {
int i =1;
while (i <= 100){
if(i % 15 != 0){
i++; //不能省略 否则死循环
continue;
}
System.out.println(i);
i++; //不能省略
}
}
3.4 for循环
for(表达式1;表达式2;表达式3{
}
表达式2必须为布尔表达式
执行顺序:表达式1;表达式2;语句块;表达式3
public class TestDemo {
// 1-10的加和
public static void main(String[] args) {
int sum = 0;
for(int i = 1;i <= 10;i++){
sum +=i;
}
System.out.println(sum);
}
//求5!
public static void main(String[] args) {
int ret = 1;
for(int i = 1;i <= 5 ;i++){
ret = ret*i;
}
System.out.println(ret);
}
for循环嵌套
//求5!+4!+3!+2!+1!
public static void main(String[] args) {
int sum = 0;
for (int j =1;j <= 5;j++) {
int ret = 1;
for (int i = 1; i <= j; i++) {
ret = ret * i;
}
sum += ret;
}
System.out.println(sum);
}
3.5 do while循环
do{
语句块;
}while();
至少会执行一次
4.输入输出结构
System.out.println(“换行”);
System.out.print(“不换行”);
System.out.printf("%d\n",10);
4.1输出到控制台
4.2从键盘输入
import java.util.Scanner;
public class TestDemo {
public static void main(String[] args) {
Scanner scan =new Scanner(System.in);
//ctr+d
while (scan.hasNextInt()){
int n = scan.nextInt();
System.out.println(n);
}
}
ctr+d结束循环