java分支执行结构以及循环结构
1、分支结构
if条件语句 (主要是四种格式)
-
if(条件语句){…}
-
if (条件语句){…}else{…}
-
if (条件语句){…}else if(条件语句){…}
-
if (条件语句){…}else if(条件语句){…}else{…}
switch语句有关规则
-
表达式的返回值必须是下述几种类型之一:int, byte, char, short,String;
-
case 子句中的取值必须是常量,且所有 case 子句中的取值应是不同的;
-
default 子句是可选的;
-
break 语句用来在执行完一个 case 分支后使程序跳出 switch 语句块;如果 case 后面没有写 break 则直接往下面执行!
-
Case 后面的执行体可写{ }也可以不写{ }
2、循环执行结构
while循环
符合条件,循环继续执行;否则,循环退出
特点:先判断,再执行
使用情况:已知循环条件,不知道循环次数
语法:
while(条件表达式){
//语句块;
}
使用while循环的步骤
-
分析循环条件和循环操作
-
套用while语法写出代码
-
检查循环是否能够退出
do-while循环
先执行一遍循环操作,符合条件,循环继续执行;否则,循环退出
特点:先执行,再判断。不伦循环条件是否成立,肯定要执行第一次
使用情况:肯定要运行一次才觉得是否循环,而且不知道要循环多少次
语法:
do{
循环操作;
}while(条件表达式)
while 循环和 do-while 循环的区别?
-
while:先判断条件,如果条件满足,再执行循环操作
-
do while:先执行一遍循环操作,然后再判读条件,如果条件满足,继续执行循环操作。
for循环:
使用情况:已知次数的循环,使用for 语法: for(初始化参数;判断条件;更新循环变量){ 循环体; }
嵌套循环中 外层循环控制的是行数,内层循环控制的是列数
关键字:
-
break 不加标签,跳出一层循环; 加标签,跳到指定位置(不推荐)
-
continue 跳过当前循环后面的所有代码,直接执行下一次循环,不打破循环,略过一次循环
小练习:
1、根据《国家电网销售电价表》,居民生活用电按 3 个梯度收费:月用电量 150 千瓦时及以下部分, 每千瓦时 0.43 元,151—400 千瓦时部分为 0.45 元,401 千瓦时以上部分为 0.52 元,请编写程序,当输入 用户的用电量时,计算出所需付的费用
package src;
import java.util.Scanner;
public class Demo4 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println(“本月用电量为:”);
double w = input.nextDouble();
if(w<=150){
double cost = 0.43w;
System.out.println(“本月电费为:”+cost);
}
else if (w>150 & w<=400){
double cost = 0.43150 + (w-150)0.45;
System.out.println(“本月电费为:”+cost);
}
else {
double cost = 0.43150 + 0.45*250 + (w-400)*0.52;
System.out.println(“本月电费为:”+cost);
}
}
}
2、计算该年该月天数 一年中有 12 个月,而每个月的天数是不一样的。其中大月 31 天,分别为 1,3,5,7,8,10,12 月,小月 30 天,分别 为 4,6,9,11 月。还有二月比较特殊,平 年的二月只有 28 天,而闰年的二月有 29 天,由用户在控制台输入年份和月份, 程序计算该年该月的天数。
代码:
package src;
import java.util.Scanner;
public class Demo2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println(“请输入你查询的年份:”);
int year = sc.nextInt();
System.out.println(“请输入你查询的月份:”);
int month = sc.nextInt();
int day;
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {//判断是否为闰年
day = 29;//平 年的二月只有 29 天,
} else {
day = 28;//润年的二月只有 28 天,
}
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12: //每年的1 、3、5、7、8、10、12月有31天
System.out.println(year + “年” + month + “月有31天”);
break;
case 4:
case 6:
case 9:
case 11: //每年的4、6、9、11月有30天
System.out.println(year + “年” + month + “月有30天”);
break;
case 2:
System.out.println(year + “年” + month + “月有” + day + “天”);
}
}
}
3、打印三位数中的所有水仙花数 所谓“水仙花数”即一个整数满足其值等于各个数位的立方和。 如: 153 是一个水仙花数,因为 153= 1³+5³+3³
package src;
import java.util.Scanner;
public class Demo7 {
public static void main(String[] args) {
/*
要求输出三位数以内的所有水仙花数
我是直接将一个三位数分开分别是百位数、十位数、个位数
分别取一个范围,用三个for循环,即是所有三位数
*/
for (int i = 1; i <= 9; i++) { //百位数的范围是1到9
for (int j = 0; j <= 9; j++) { //十位数的范围是0到9
for (int k = 0; k <= 9; k++) { //个位数的范围是0到9
if (i * i * i + j * j * j + k * k * k == i * 100 + j * 10 + k) {
//水仙花数的条件
System.out.println(i*100+j*10+k);
}
}
}
}
}
}
上一篇: 一个企业如何做好自己的网络营销?
下一篇: 软文推广的营销作用具体体现在哪里