学习目标
image.pngif语句
if条件语句主要用于告知程序当某一个条件成立时,须执行满足该条件的相关语句。
if语句 (单一条件)
-如果表达式值为true,则执行花括号的内容后,再执行后面的语句
-如果表达的值为false,则直接执行后面的语句
if(判断表达式){
执行语句块
}
![image.png](https://img.haomeiwen.com/i14622085/b2c61a0321c8be4e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
if后的小括号内的表达式的值必须是布尔类型只能是真或者假条件为真时执行大括号内的语句块
大括号内的语句要有缩进保证代码规范。
public class Demo {
public static void main(String[] args) {
int i = 0;
if(i>0){
System.out.println(i);
}
}
}
没有输出 因为并没有满足条件所以不执行大括号内的语句。
public class Demo {
public static void main(String[] args) {
int i = 0;
int a = i++;
if(i>=0){
a++;
System.out.println(i);
}
System.out.println(a);
}
}
输出结果1 1。
if...else语句(二选一),语法为:
if(表达式){
执行语句块1
}else{
执行语句块2
}
####if...else语句作用:针对某种条件有选择地做出处理*
如果布尔表达式的值为true,则执行语句1
如果布尔表达式的值为false,则执行语句2
*如果有多个条件,可以用逻辑运算符连接成为表达式*
int x = 2;
if(x<2){
x++;
}else{
x--;
}
System.out.println("x="+x);
结果为:x = 1;
![image.png](https://img.haomeiwen.com/i14622085/5c8d5e576830cf71.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
####if...else if条件语句
if (表达式1){
执行语句块1
}else if(表达式2){
执行语句块2
}
…
![image.png](https://img.haomeiwen.com/i14622085/8f2ce4224c344637.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
int x = 88;
if(x<60){
System.out.println(“成绩不合格”);
}
else if(x>=85){
System.out.println(“成绩优秀”);
}
else{
System.out.println(“成级良好”);
}
输出结果“成绩优秀”。
####变量作用域
变量只能在初始化之后使用。
在作用域里定义的变量,只能在该作用域中使用。
-使用一对大括号包含的语句范围,称为作用域。
-在作用域中,变量名不能重复定义。
![image.png](https://img.haomeiwen.com/i14622085/bfc34c331a0c3500.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
####switch条件语句
#####switch语法格式
switch (表达式){
case 取值1:
语句块1 …
case 取值n:
语句块n
default: 语句块n+1
}
示例:
int n = 2;
int result;
switch(n+1){
case 1:
System.out.println(“Block A”);
result = n;
break;
case 2:
System.out.println(“Block B”);
result = nn; break;
case 3:
System.out.println(“Block C”);
result = nn*n;
break;
default:
result = 0;
}
System.out.println(“result=“+result);
switch语句格式特殊记忆:case不加缩进,case的语句有缩进。
#####switch语句特点:
>表达式的值只可以接受int、byte、char、short 、String型,不接受其他类型的值
**表达式的值接受String类型只在JDK7及以后版本有效**
>switch case中的值必须要与switch表达式的值具有相同的数据类型。而且case后跟的值必须是常量,不能跟变量。
>不允许有重复的case取值
>switch一旦碰到第一次case匹配,程序就会跳转到这个标签位置,开始顺序执行以后所有的程序代码,而不管后面的case条件是否匹配,直到碰到break关键字或者结束switch语句的大括号为止
**case之间与default没有顺序。先判断所有的case,没有匹配的case执行default。因此一般将default放在case后面。**
>switch语句停止的条件是遇到了break关键字或者结束switch语句的大括号。
####字符串类型
英文双引号中的内容表示字符串 " "。
字符串类型使用String表示。
####控制台输入
可以通过控制台得到用户的输入(程序会等待用户输入后再继续执行):
使用控制台输入,需要加入代码
import java.util.Scanner;
该代码必须在package下一行
如果没有package声明,可以在第一行
new Scanner(System.in).nextInt():得到用户输入的整数
new Scanner(System.in).nextDouble():得到用户输入的浮点数
new Scanner(System.in).next():得到用户输入的字符串,空格结束
new Scanner(System.in).nextLine():得到用户输入的字符串,换行结束
package com.neuedu.ch03;
import java.util.Scanner;
public class InputTest {
public static void main(String[] args) {
int a01 = new Scanner(System.in).nextInt();
double b01 = newScanner(System.in).nextDouble();
String c01 = new Scanner(System.in).next();
String c02 = new
Scanner(System.in).nextLine();
}
}
#####产生随机数
随机数:在产生过程中是按照分布概率随机产生的,其结果是不可预测的。
伪随机数:计算机中的随机函数是按照一定算法模拟产生的,因此称为伪随机数。
*用随机数程序,需要加入代码*
import java.util. Random;
该代码必须在package下一行
如果没有package声明,可以在第一行
多行import可以依次编写,import代码没有必须顺序
#####产生随机数代码:new Random().nextInt(正整数);
括号中的数字代表产生随机数的范围
例如:如果数字为10,产生0到9之间的随机整数。
package com.neuedu.ch03;
import java.util.Random;
public class RandomTest {
public static void main(String[] args) {
int a = new Random().nextInt(10);
System.out.println(a);
}
}
###循环语句
顺序结构和流程控制的程序语句只能被执行一次。如果您想要同样的操作执行多次,就需要使用循环结构
Java中循环语句:
while语句 do...while语句
for语句
foreach语句
while循环:
while (条件表达式){
执行语句块
}
int x=1;
while(x<3){
System.out.println("x="+x);
x++;
}
![image.png](https://img.haomeiwen.com/i14622085/d016539aa0aecc1d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
####代码调试
使用STS,可以让代码一行一行的执行,观察每行代码变量值的改变
设置断点
启动调试运行
单步执行
观察变量
![image.png](https://img.haomeiwen.com/i14622085/92445ac6f2f243ea.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![image.png](https://img.haomeiwen.com/i14622085/de464b8619fc2012.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![image.png](https://img.haomeiwen.com/i14622085/acb2d0a7a45c0fb7.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![image.png](https://img.haomeiwen.com/i14622085/c001561b61695d44.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
####do…while循环语句
do{
执行语句块
} while(条件表达式 );
int x=3;
do{
System.out.println("x="+x);
x++;
} while(x<3);
image.png
for循环语句
语法格式
for(初始化表达式;循环条件表达式;循环后的操作表达式){ 执行语句块 }
for(int x=1;x<3;x++){
System.out.println("x="+x);
}
image.png
流程控制进阶
-流程控制嵌套使用
流程控制嵌套使用语法
流程控制嵌套使用注意事项
-死循环
while实现
for实现
do...while实现
-流程中断
break
continue
在Java语言中,流程控制语句可以嵌套使用
嵌套循环语句
嵌套条件语句 循环、
条件语句嵌套使用
例如
意事项: 代码缩进格式 变量声明周期
public class Multiplicaiton {
public static void main(String[] args) {
for (int i = 1; i <= 9; i++){
for(int n = 1; n <= i; n++){
System.out.print(n+" x "+i+" = "+n*i+" ");
}
System.out.println();
}
}
}
注意事项:
代码缩进格式
变量声明周期
####死循环语句
死循环:靠自身控制无法终止的程序称为“死循环”
思考:死循环是错误吗?
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);
####循环的中断
在使用循环语句时,只有循环条件表达式的值为false时,才能结束循环。有时,我们想提前中断循环,要实现这一点,只需要在循环语句块中添加break或continue语句:
>break关键字:break 语句用于终止最近的封闭循环或它所在的 switch 语句。控制传递给终止语句后面的语句。
>continue关键字:语句将控制权传递给它所在的封闭迭代语句的下一次迭代。(跳出本循环,执行下一次循环)
break关键字:
break语句用于终止某个语句块的执行。用在循环语句体中,可以强行退出循环。
“break;”语句:可以出现在while、do…while、for、switch语句体中。
“break label”语句 :可以出现在任何语句体中。
![image.png](https://img.haomeiwen.com/i14622085/a4e8bd6d0360da98.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
####break label中断
标签名:循环体 {
break 标签名;
}
标签名:
任意标识符
循环体:
while
do…while
for
break 标签名:
循环体标签名和break标签名必须对应一致。
![image.png](https://img.haomeiwen.com/i14622085/ef34a03e3f7ab0fa.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
####continue中断
continue关键字
continue语句用在循环语句体中,用于终止某次循环过程,跳过循环体中continue语句下未执行的循环,开始下一次循环过程
continue语句:只能出现在循环语句while、do…while、for中
for(int i=1;i<50;i++) {
if((i%2)==0){
continue;
}
System.out.print(i+" ");
}
####continue label中断
语法格式同break
示例:
![image.png](https://img.haomeiwen.com/i14622085/0ff3c90ba910a1b6.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
网友评论