选择与循环
顺序结构
如果代码里没有流程控制,程序是按照书写的格式从上而下一行一行执行的,一条语句执行完之后继续执行下一条语句,中间没有判断和跳转,直到程序的结束。
if语句
/* if语句:语法 if (boolean表达式) {
语句体;
}
语法解读:如果boolean表达式结果为true则执行语句体,否则不理会{},执行后面的内容
*/
int a = 10; // 定义并初始化变量
int b = 20;
if (a < b) { // 判断表达式"a<b"的真伪,a<b结果为真,所以执行打印输出a小于b""
System.out.println("a小于b");
}
if-else语句
/* if-else语句: 语法 if (boolean表达式) {
语句体1;
} else {
语句体2;
}
语法解读:如果boolean表达式结果为true则执行语句体1,否则执行语句体2
*/
int a = 10;
int b = 20;
if (a > b) { // a>b结果为false,所以执行else后面的内容,打印输出"a不大于b"
System.out.println("a大于b");
} else {
System.out.println("a不大于b");
}
if-else if-else语句
/* if-else if-else语句: 语法 if (boolean表达式1) {
语句体1;
} else if (boolean表达式2) {
语句体2;
} else {
语句体3;
}
语法解读:如果boolean表达式1结果为true则执行语句体1,否则判断boolean表达式2,如果为true则执行语句体2,否则执行语句体3
*/
int a = 10;
int b = 10;
if (a > b) { // a>b结果为false,所以执行第二条boolean表达式
System.out.println("a大于b");
} else if (a < b) { // a<b结果也为false,所以执行else后面的内容,打印输出"a等于b"
System.out.println("a小于b");
} else {
System.out.println("a等于b");
}
switch语句
/* switch开关语句: 语法 switch (整型表达式) {
case A值: 语句体1;break;
case B值: 语句体2;break;
default: 语句体3;
}
语法解读:判断整型表达式的值是否等于case的值,等于则执行相应case后面的语句体,否则执行default后面的语句体
*/
Scanner s = new Scanner(System.in); // 调用jdk自带的包,实现从键盘读取数字
System.out.println("请输入星期数(1-7):");
int weekday = s.nextInt(); // 星期数为输入的数字
switch (weekday) { // 根据输入的数字跟case进行比较,选择执行相应的语句
case 1:
System.out.println("周一");break;
case 2:
System.out.println("周二"); break;
case 3:
System.out.println("周三"); break;
case 4:
System.out.println("周四"); break;
case 5:
System.out.println("周五"); break;
case 6:
System.out.println("周六"); break;
case 7:
System.out.println("周日"); break;
default:
System.out.println("输入有误!");// 如果输入的数字跟case的值不匹配则输出default的内容
}
while循环
/* while循环:语法 while (boolean表达式) {
循环体;
}
语法解读:如果boolean表达式结果为true则执行循环体,直到boolean表达式的结果为false时跳出循环
*/
int i = 1;
int sum = 0;
while (i<=100) { // 只要i<=100的结果为true则一直执行循环体
sum +=1; // 累加
i++;
}
System.out.println("1-100之间的数之和为:" + sum);
do while循环
/* do while循环:语法 do {
循环体;
} while(boolean表达式);
语法解读:先执行一次循环体,再判断boolean表达式,表达式为true则继续执行循环体
*/
int i = 0; // 因为do-while循环要先执行一次,所以i从0开始自增
int sum = 0;
do {
sum +=i;
i++;
} while(i<=100);
System.out.println("1-100之间的数之和为:" + sum);
for语句
/* for循环:语法 for (初始化语句; boolean表达式; 循环后操作语句) {
循环体;
}
语法解读:先执行初始化语句,然后判断boolean表达式,为true则执行循环体,再执行循环后操作语句,再执行boolean表达式,如果为false则跳出循环
*/
int sum = 0;
for (int i = 1; i <= 100; i++) { //先初始化i,判断i是否小于等于100,为true执行sum +=i,再执行i++,直到i<=100为false则跳出循环,打印sum
sum += i;
}
System.out.println("1-100之间的数之和为:" + sum);
break、continue、return语句:控制循环
1.break: 跳出当前循环,就算循环条件满足也不再执行当前循环
2.continue: 跳出本次循环,如果循环条件满足会继续执行循环
3.return: 直接结束本次方法,return后面在循环体内外的内容都不再执行,方法结束
嵌套循环
/*嵌套循环:语法 for (初始化语句; boolean表达式; 循环后操作语句) {
for (初始化语句; boolean表达式; 循环后操作语句) {
循环体;
}
循环体;
}
语法解读:一层一层计算,先计算外层循环一次,满足条件则运行内层循环,内层循环结束,外层循环执行第二次,直到外从循环也不满足而跳出循环,循环才能结束
*/
// 打印九九乘法表
for (int i = 1 ; i <= 9 ; i++) { //外层循环,控制行数
for (int j = 1 ; j <= i; j++) { //内层循环,控制每行的列数
System.out.print(j + "*" + i + "=" + j*i + '\t'); // 字符串拼接,拼接1*1=1这样的表达式
}
System.out.print('\n'); // '\t'间隔一个制表符(table),'\n'换行
}