程序流程控制(java)
if 分支
- if分支有三个不同的结构。
第一种格式:
执行流程: - 首先根据判断条件表达式的结果,如果为true,执行语句,为false就不执行语句。
注意事项: - if语句中如果大括号内只有一行代码,那么大括号可以省略,不写。
package javaday1;
import java.util.Scanner;
public class debug {
public static void main(String[] args) {
System.out.println("请输入考试分数:");
Scanner sc = new Scanner(System.in);
int score = sc.nextInt();
if(score > 100 || score <0){
System.out.println("您输入的分数有错误");
}else if(score < 101 && score > 79){
System.out.println("奖励一辆自行车");
}else if(score > 60 && score < 80){
System.out.println("奖励机器人");
}else {
System.out.println("准备被打");
}
}
}
switch语句
switch分支注意事项:
- 表达式类型只能是byte、short、int、char,JDK5开始支持枚举,JDK7开始支持String、不支持double、float、long。
- case给出的值不允许重复,且只能是字面量,不能是变量。
- 不要忘记写break,否则会出现穿透现象。
switch的case穿透
- 如果代码执行到没有写break的case块,执行完后将直接进入下一个case块执行代码(而且不会进行任何匹配),直到遇到break才跳出分支,这就是switch的穿透性。
case穿透的好处
存在多个case分支的功能代码是一样时,可以用穿透性把流程集中到同一处处理,这样可以简化代码。
package javaday1;
import java.util.Scanner;
public class testcase {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("please input a score:");
int week = sc.nextInt();
switch (week){
case 1:
System.out.println("week 1");
break;
case 2:
System.out.println("week 2");
break;
case 3:
System.out.println("week 3");
break;
case 4:
System.out.println("week 4");
break;
case 5:
System.out.println("week 5");
break;
default:
System.out.println("双休");
break;
}
System.out.println("END!!!!!");
System.out.println("please input month");
int month = sc.nextInt();
switch (month){
case 1:
// System.out.println("dong");
case 2:
System.out.println("dong");
break;
case 3:
// System.out.println("cun");
case 4:
// System.out.println("cun");
// break;
case 5:
System.out.println("cun");
break;
case 6:
// System.out.println("xia");
case 7:
// System.out.println("xia");
case 8:
// System.out.println("xia");
case 9:
System.out.println("xia");
break;
case 10:
// System.out.println("qiu");
case 11:
System.out.println("qiu");
break;
case 12:
System.out.println("dong");
break;
}
}
}
for语句
for 循环用于控制一段代码反复执行多次
for(初始化语句,循环条件,迭代语句){
循环体语句(可重复执行的代码)}
// 输出三次helloword
for(int i = 0,i < 3,i++){
System.out.println("hello world")
}
package javaday1;
import java.util.Scanner;
public class debug {
public static void main(String[] args) {
int sum = 0;
for (int i =0;i <5;i++){
sum += i;
System.out.println("循环第" + i + "次");
}
System.out.println(sum);
}
}
package javaday1;
import java.util.Scanner;
public class debug {
public static void main(String[] args) {
int sum = 0;
for (int i =0;i < 10;i++){
if (i % 2 != 0){
System.out.println("数字" + i + "是奇数");
sum += i;
}
}
System.out.println("奇数求和:" + sum);
}
}
package javaday1;
import java.util.Scanner;
public class debug {
public static void main(String[] args) {
for (int i = 100;i < 1000;i++){
int ge = i % 10;
int shi = i /10 %10;
int bai = i /10/10%10;
if (ge*ge*ge + shi*shi*shi + bai*bai*bai == i){
System.out.println("该数字是水仙花数:" + i);
}
}
}
}
while循环
package javaday1;
import java.util.Scanner;
public class debug {
public static void main(String[] args) {
double height = 884886;
double paper = 0.1;
int count = 0;
while (paper < height){
paper *= 2;
count += 1;
}
System.out.println("该纸张需要对折"+ count +"次");
}
}
do…while循环
package javaday1;
import java.util.Scanner;
import java.util.Random;
public class debug {
public static void main(String[] args) {
System.out.println("请输入密码:");
Scanner sc = new Scanner(System.in);
Random r = new Random();
int num = r.nextInt(1000);
System.out.println("系统生成的随机数密码为:"+ num);
for(int i=1; i < 7; i++){
int code = sc.nextInt();
if(code == num){
System.out.println("进入系统:");
break;
}else if(code != num){
System.out.println("error!!!!,please retry");
}
System.out.println("当前是第"+ i +"次"+"次数达到6次后系统关闭");
}
}
}
break continue
random
package javaday1;
import java.util.Scanner;
import java.util.Random;
public class debug {
public static void main(String[] args) {
Random r = new Random();
int guess = r.nextInt(10);
System.out.println("需要猜测的数字是:"+guess);
while (true) {
System.out.println("猜数字游戏开始,请输入一个数字:");
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
if (num == guess) {
System.out.println("恭喜你猜对了");
break;
}else if(num != guess){
System.out.println("please Retry");
}
}
System.out.println("END!!!!!!!");
}
}