流程控制;流程控制语句:
顺序、选择、循环
什么是顺序?
package cn.mtianyan.flow;public class OctalOutput { public static void main(String[] args) { //定义一一个整型变量n ,值为123
int n;
n = 123;
System.out.println("n=" + n); //定义一个整型变量,存放八进制数
int octal = 037;
System.out.println("octal=" + octal); // 输出结果为十进制
System.out.println("octal=" + Integer.toOctalString(octal)); // 输出结果为八进制对应字符串
}
}运行结果:
顺序结构,一句一句按着顺序执行。
选择结构: if if-else
if(条件)
{
<语句块>
}if(条件){
<语句块>
}else{
<语句块>
}根据条件,选择执行if还是执行else后面的语句。
比如之前用户输入一个数,判断计数还是偶数,不想每次都重新运行。希望可以一直输入,就要用到循环结构。循环设置终止条件。
三大流程控制语句:顺序、选择、循环
学习的主要内容:
选择结构: if结构;if-else结构;多重if;嵌套if;switch结构
循环结构 while;do-while;for;循环嵌套
多重if结构
选择结构
if(条件)
语句;if(条件){
语句;
}只有一条语句,大括号可以省略。条件小括号后面没有分号。
if(条件)
语句1;else语句2;if(条件){
语句1;
}else{
语句2;
}案例需求描述:编写一个程序,根据考试成绩,输出相应的评定信息。
成绩大于等于90分,输出“优”
成绩大于等于80分且小于90分,输出“良”
成绩大于等于60分小于80分,输出“中”
成绩小于60分, 输出“不及格'
package cn.mtianyan.flow;import java.util.Scanner;public class ScoreAssess { public static void main(String[] args) {
System.out.println("请输入成绩: ");
Scanner scanner = new Scanner(System.in); int score = scanner.nextInt(); if(score >=90) {
System.out.println("优");
} if (score>=80 & score<90){
System.out.println("良");
} if(score >=60 & score<80){
System.out.println("中");
} if (score <60){
System.out.println("不及格");
}
}
}运行结果:
这是我们通过简单的多个if的实现,可以看到>=90和<90就是一种取反的范围。
多重if结构语法格式:
if(表达式1) 语句1;else if(表达式2) 语句2;else if(表达式3) 语句3;else 语句n;
package cn.mtianyan.flow;import java.util.Scanner;public class ScoreAssess { public static void main(String[] args) {
System.out.println("请输入成绩: ");
Scanner scanner = new Scanner(System.in); int score = scanner.nextInt(); if(score >=90) {
System.out.println("优");
} else if (score>=80){ // 相当于score>=80 & score<90
System.out.println("良");
} else if(score >=60){
System.out.println("中");
} else{
System.out.println("不及格");
}
}
}运行结果:
这里应该注意其中包含的隐含条件。else if 是上句if的取反范围加上自己的if条件。
package cn.mtianyan.flow;public class IfChoose { public static void main(String[] args) { int a = 5, b = 4, c = 3, d = 2; if (a > b && b > c) {
System.out.println(d);
} else if ((c - 1 >= d) == 1) {
System.out.println(d + 1);
} else {
System.out.println(d + 2);
}
}
}Error:(9, 33) java: 不可比较的类型: boolean和int
else if ((c - 1 >= d) == true) // boolean只能与布尔值进行比较
编程练习
根据下面数学函数,编写程序根据x的值,计算y的值,最后输出x和y的值。(使用多重if-else结构完成)
任务
定义整型变量x并初始化为-5
定义整型变量y并初始化0
根据所给条件,使用多重if-else结构求y的値
输出x和y的値
package cn.mtianyan.flow;public class IfElseDemo { public static void main(String[] args) { int x = -5; int y = 0; if(x<0){
y=-1;
}else if(x==0){
y=0;
}else{
y=1;
}
System.out.println("x="+x+",y="+y);
}
}运行结果:
嵌套if结构
将整个if块插入另一个if块中
if(表达式1) if(表达式2) if(表达式3) 语句;else 语句;
有多个if,要注意跟哪个else对齐。
案例: 从键盘输入两个整数,经过判断输出他们的关系(大于,小于,等于)
package cn.mtianyan.flow;public class IntCompare { public static void main(String[] args) { int x = 5,y=15; // 判断x和y是否相等
if (x != y){ if (x >y ){
System.out.println(x+"大于"+y);
}else{
System.out.println(x+"小于"+y);
}
}else {
System.out.println(x+"和"+y+"相等");
} if (x != y) if (x >y )
System.out.println(x+"大于"+y); else
System.out.println(x+"和"+y+"相等"); // else语句与离它最近的进行匹配,对应到x>y这个了
}
}大括号要加,else与最近的if匹配。
Switch结构
if和switch的区别
if结构:
判断条件是布尔类型,判断条件是一个范围(成绩大于60)
switch结构:
判断条件是常量值
switch(表达式){ case 常量表达式1:
语句1; break; case 常量表达式2:
语句2;break; default:
语句3;
}遇到break,会跳出。default可以省略,表达式值与常量表达式匹配。JDK6.0以前这个表达式最终结果只能是int类型(等价的char等)。
JDK 7.0以后表达式的值可以是基本数据类型的byte,short,int,char ,以及String类型。
案例 从键盘输入1-7之间的任意数字,分别输出对应的信息。
1一星期一;2一星期二;3一星期三;4一星期四;5-星期五;6一星期六;7一星期日;
package cn.mtianyan.flow;import java.util.Scanner;public class WeekDemo1 { public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入1-7之间的数字: "); int n = scanner.nextInt(); switch (n){ case 1:
System.out.println("星期一"); case 2:
System.out.println("星期二"); case 3:
System.out.println("星期三"); case 4:
System.out.println("星期四"); case 5:
System.out.println("星期五"); case 6:
System.out.println("星期六"); case 7:
System.out.println("星期日"); default:
System.out.println("该数字超出了1-7的范围!");
}
}
}运行结果:
如果不加break; 从和n匹配的一直执行到最后去。
package cn.mtianyan.flow;import java.util.Scanner;public class WeekDemo1 { public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入1-7之间的数字: "); int n = scanner.nextInt(); switch (n){ 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("该数字超出了1-7的范围!");
}
}
}改写程序为字符串的输入
package cn.mtianyan.flow;import java.util.Scanner;public class WeekDemo2 { public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入表示星期的英文单词: ");
String week = scanner.next();
week = week.toUpperCase(); // 把字符串中字符全部改为大写
switch (week){ case "MONDAY":
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 "SATURDAY":
System.out.println("星期六");break; case "SUNDAY":
System.out.println("星期日");break; default:
System.out.println("单词输入错误!");
}
}
}
作者:天涯明月笙
链接:https://www.jianshu.com/p/e2a83565accf
共同学习,写下你的评论
评论加载中...
作者其他优质文章








