一 流程控制
- 三大流程控制语句: 顺序, 选择, 循环
二 选择结构
在多重if-else中, 只有一个语句不加括号时: else匹配最近的, 就近原则
- if结构, if-else结构
if(条件)
语句1;
else
语句二
if(条件){
语句1;
}else{
语句2;
}
- 多重if
package com.imooc.flow;
import java.util.Scanner;
public class ScoreAssess {
public static void main(String[] args) {
/*
* 成绩大于等于90分,输出“优” 成绩大于等于80分且小于90分,输出“良” 成绩大于等于60分小于80分,输出“中” 成绩小于60分,输出“不及格”
*/
System.out.println("请输入成绩: ");
Scanner sc = new Scanner(System.in);
int score = sc.nextInt();
if (score >= 90) {
System.out.println("优");
} else if (score >= 80) {
// 这里score>=80 相当于score>=80&score<90
System.out.println("良");
} else if (score >= 60) {
System.out.println("中");
} else {
System.out.println("不及格");
}
}
}
- 嵌套if
package com.imooc.flow;
import java.util.Scanner;
public class IntCompare {
public static void main(String[] args) {
// 简单案例, 判断两个数的大小
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个数: ");
int x = sc.nextInt();
System.out.println("请再输入一个数: ");
int y = sc.nextInt();
// 判断两个数的大小
if (x != y) {
if (x > y) {
System.out.println(x + "大于" + y);
} else {
System.out.println(x + "小于" + y);
}
} else {
System.out.println(x + "和" + y + "相等");
}
}
}
- switch结构
在switch中 break和default是可以省略的
switch对应的括号是(byte,short,int,char,String)
long类型和浮点型是不行的
switch(表达式){
case:常量表达式1:
语句1;break;
case:常量表达式2:
语句1;break;
default:
语句3;
}
package com.imooc.flow;
import java.util.Scanner;
public class WeekDemo2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入英文星期几: ");
String str = sc.next().toUpperCase(); // toUpperCase()方法是转大写
switch (str) {
case "MONDEY":
System.out.println("星期一");
break;
case "TUESDAY":
System.out.println("星期二");
break;
case "WEDNESDAY":
System.out.println("星期三");
break;
case "THURSDAY":
System.out.println("星期四");
break;
case "FRIDAY":
System.out.println("星期五");
break;
case "SATARDAY":
System.out.println("星期六");
break;
case "SUNDAY":
System.out.println("星期天");
break;
default:
System.out.println("输入错误~");
}
}
}
三while循环(循环次数不固定使用)
// 循环输出26个英文字母, 分两行输出
char ch = 'a';
int count = 1;
while (ch <= 'z') {
System.out.print(ch + " ");
if (count == 13) {
System.out.println();
}
ch++;
count++;
}
四do-while(至少循环一次)
System.out.println("请输入数字: ");
// int number = 6; //设定猜中的数字
// Math.random()是随机数, 默认是[0,1)
int number = (int) (Math.random()*10+1);
int guess;
do {
Scanner sc = new Scanner(System.in);
guess = sc.nextInt();
if(guess>number) {
System.out.println("太大");
}else if(guess<number) {
System.out.println("太小");
}
}while(guess!=number);
System.out.println("恭喜猜对了: "+guess);
}
五for循环(循环次数固定使用)
// 2 百元百鸡 小鸡0.5元,公鸡2元,母鸡3元,用100元买一百只鸡。列举出所有结果。
int chicken = 100;
double money = 100;
for (int x = 0; x < chicken / 2; x++) { // 公鸡的数量
for (int y = 0; y < chicken / 3; y++) { // 母鸡的数量
int z = chicken - x - y;
if (z >= 0 && ((z * 0.5) + (x * 2) + (y * 3)) == 100) {
System.out.println("小鸡=" + z + "只" + ",公鸡=" + x + "只" + ",母鸡=" + y);
}
}
}
// 编写一个程序,计算任一输入的各位数字之和;(如输入12345,计算1+2+3+4+5)
System.out.println("请输入一个整数: ");
Scanner sc = new Scanner(System.in);
int count = sc.nextInt();
int sum = 0;
while(count>0) {
int dis = count%10; // 获取最后一位
sum+=dis;
count/=10; // 移除最后一位
}
System.out.println("count的和是: "+sum);
// 4 输出所有的水仙花数,所谓水仙花数是指一个3位数,其各个位上数字立方和等于其本身。
// 例如: 153 = 1*1*1 + 3*3*3 + 5*5*5
for(int i=100; i<1000;i++) {
int bai = (i%10);
int shi = (i/10)%10;
int ge = i/100;
int bais = (int) Math.pow(bai,3); // 获取某个数的三次方
int shis = (int) Math.pow(shi,3);
int ges = (int) Math.pow(ge,3);
if(i==(bais+shis+ges)) {
System.out.println("所有的水仙花数: "+i);
}
}
for (int i = 100; i < 1000; i++) {
int digit1 = i / 100; // 获取百位数
int digit2 = (i / 10) % 10; // 获取十位数
int digit3 = i % 10; // 获取个位数
int cubeSum = digit1 * digit1 * digit1 + digit2 * digit2 * digit2 + digit3 * digit3 * digit3;
if (cubeSum == i) {
System.out.println(i);
}
}
// 输出星号组成的梯形
for(int i = 3; i<=11; i++,i++){
for(int j=11; j>=i; j--){
System.out.print(" ");
}
for(int k=1; k<=i;k++){
System.out.print("*");
System.out.print(" ");
}
System.out.println();
}
五 break和continue使用
break结束最近的switch或循环
continue结束本轮循环,进入下一轮
return 语句,结束所在的方法
六 调试
debug模式运行代码:idea
• 单步运行(step over)
• 单步进入(step into) 遇到方法,进入方法单行执行
• 单步退出 (step out)跳出方法执行