条件语句
if条件语句
- if条件语句主要用于告知程序当某一个条件成立时,须执行满足该条件的相关语句。
- if语句 (单一条件)
如果表达式值为true,则执行花括号的内容后,再执行后面的语句
如果表达的值为false,则直接执行后面的语句
格式
if(表达式){
执行语句块
}
执行流程
if…else条件语句
- if…else语句作用:针对某种条件有选择地做出处理
- 如果布尔表达式的值为true,则执行语句1
- 如果布尔表达式的值为false,则执行语句2
格式
if(表达式){
执行语句块1
}else{
执行语句块2
}
执行流程
if…else if条件语句
- 如果满足某一个条件,就采用与该条件对应的处理方式;如果满足另一个条件,则采用与另一个条件对应的处理方法。
if (表达式1){
执行语句块1
}else if(表达式2){
执行语句块2}
…
else {
执行语句块n
}
格式
if (表达式1){
执行语句块1
}else if(表达式2){
执行语句块2
}…
else {
执行语句块n
}
执行流程
switch语句
格式
switch(表达式){
case 取值1:
语句块1
break;
case 取值n:
语句块n
default;
语句块n+1
}
语句特点
- 表达式的值值可以接受int、byte、char、short、String型
- case后跟的值必须是常量,不能跟变量
- 不允许有重复的case取值
- switch一旦碰到第一次case匹配,程序就会跳转到这个标签位置,开始顺序执行直到碰到break关键字为止结束运行
常用功能
控制台输入
- 可以通过控制台得到用户的输入(程序会等待用户输入后再继续执行):
- 使用控制台输入,需要加入代码
- import java.util.Scanner;
new Scanner(System.in).nextInt():得到用户输入的整数new Scanner(System.in).nextDouble():得到用户输入的浮点数
new Scanner(System.in).next():得到用户输入的字符串,空格结束
- import java.util.Scanner;
- 使用控制台输入,需要加入代码
产生随机数
- 随机数:在产生过程中是按照分布概率随机产生的,其结果是不可预测的。
- 伪随机数:计算机中的随机函数是按照一定算法模拟产生的,因此称为伪随机数。
使用随机数程序,需要加入代码import java.util.Random; - 产生随机数代码:new Random().nextInt(正整数);
括号中的数字代表产生随机数的范围
例如:如果数字为10,产生0到9之间的随机整数。
循环语句
-
Java中循环语句:
-
while语句
do…while语句
for语句
foreach语句
循环语句总结
-
for循环更适合使用在循环次数固定的语句中
while和dowhile更适合条件循环
while先判断再执行
dowhile先执行再判断条件
for循环使用最多
while循环
格式
while (条件表达式){
执行语句块
}
执行流程
do…while循环语句
格式
do{
执行语句块
} while(条件表达式 );
执行流程
for循环语句
-
关于for循环次数
-
看到
<,推断出次数是
(n-起始数) 次.
<= 在这个基础上 加 1次就好了
格式
for(初始化表达式;循环条件表达式;循环后的操作表达式){
执行语句块
}
执行流程
流程控制进阶
死循环语句
靠自身控制无法终止的程序称为“死循环”
while实现
while(true){
System.out.println("x="+x);
}
for实现
for(int x=1;;x++){
System.out.println("x="+x);
}
for(;;){
System.out.println(“你好");
}
do…while实现
do{
System.out.println("x="+x);
} while(true);
break中断
- break语句用于终止某个语句块的执行。用在循环语句体中,可以强行退出循环。
- “break;”语句:可以出现在while、do…while、for、语句中。
示例
int sum = 0;
for(;;){
if(sum>=666){
break; //stop
}
sum = sum + 20;
}
System.out.println(“sum的值为:”+sum);
continue中断
- continue语句用在循环语句体中,用于终止某次循环过程,跳过循环体中continue语句下未执行的循环,开始下一次循环过程
- continue语句:只能出现在循环语句while、do…while、for中
示例
for(int i=1;i<50;i++) {
if((i%2)==0){
continue; // skip
}
System.out.print(i+" ");
}
练习
1、输入一个成绩a,使用if结构分别输出成绩等级。A:90-100,B:80-89,C:70-79,D:60-69,E:0~59(知识点:条件语句if )
import java.util.Scanner;
public class 练习1 {
// 1、输入一个成绩a,使用if结构分别输出成绩等级。
// A:90-100,B:80-89,C:70-79,D:60-69,E:0~59(知识点:条件语句if )
public static void main(String[] args) {
double a;
Scanner sc = new Scanner(System.in);
a = sc.nextDouble();
if ( a<100&&a>90 ) {
System.out.println("A");
}else if ( a<89&&a>80 ) {
System.out.println("B");
}else if ( a<79&&a>70 ) {
System.out.println("C");
}else if ( a<69&&a>60 ) {
System.out.println("D");
}else if ( a<59&&a>0 ) {
System.out.println("E");
}else {
System.out.println("成绩不合法");
}
}
}
2、判断一个随机整数是否能被5和6同时整除(打印能被5和6整除),或只能被5整除(打印能被5整除),或只能被6整除,(打印能被6整除),不能被5或6整除,(打印不能被5或6整除)(知识点:条件语句)
import java.util.Scanner;
public class 练习2 {
//2、判断一个随机整数是否能被5和6同时整除(打印能被5和6整除),
// 或只能被5整除(打印能被5整除),
// 或只能被6整除,(打印能被6整除),
// 不能被5或6整除,(打印不能被5或6整除)(知识点:条件语句)
public static void main(String[] args) {
int x;
Scanner sc = new Scanner(System.in);
x = sc.nextInt();
if ( x%5==0&&x%6==0 ) {
System.out.println(x+"能够同时被5和6整除");
}else if ( x%5==0&&x%6!=0 ) {
System.out.println(x+"只能被5整除");
}else if ( x%5!=0&&x%6==0 ) {
System.out.println(x+"只能被6整除");
}else {
System.out.println(x+"不能被5或6整除");
}
}
}
3、假设某员工今年的年薪是30000元,年薪的年增长率6%。编写一个Java应用程序计算该员工10年后的年薪。(知识点:循环语句for)
public class 练习3 {
// 3、假设某员工今年的年薪是30000元,年薪的年增长率6%。
// 编写一个Java应用程序计算该员工10年后的年薪。(知识点:循环语句for)
public static void main(String[] args) {
double salary = 30000;
for (int i = 1; i <= 10; i++) {
salary = salary+salary*0.06;
}
System.out.println("10年后年薪为"+salary);
}
}
4、猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。(知识点:循环语句 ,逆向思维)
public class 练习4 {
// 4、猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个,
// 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。
// 以后每天早上都吃了前一天剩下的一半零一个。
// 到第10天早上想再吃时,见只剩下一个桃子了。
// 求第一天共摘了多少。(知识点:循环语句 ,逆向思维
public static void main(String[] args) {
int t = 1;
for (int i = 1; i <= 9; i++) { // 九天吃了九次
t = (t+1)*2;
}
System.out.println("一共摘了"+t+"个桃子");
}
}
5.switch 练习 输入季节,输出月份
import java.util.Scanner;
public class switch语句 {
public static void main(String[] args) {
// if适合一次只执行一个语句块结构
// switch适合一次执行多个语句块结构
String s;
Scanner sc = new Scanner(System.in);
System.out.println("请输入季节");
s = sc.next();
switch (s) {
case "春天":
System.out.println("春天是三四五月");
break; // 不加break会一直向下执行知道遇到break
case "夏天":
System.out.println("夏天是六七八月");
break;
case "秋天":
System.out.println("秋天是九十十一月");
break;
case "冬天":
System.out.println("夏天是一二十二月");
break;
default: // 都不符合
System.out.println("季节输入不正确");
}
}
}