控制语句
- 选择结构
-if,if…else
-switch - 循环结构
-for
-while
-do…while() - 控制循环的语句
-break
-continue
关于java中的if语句(分支语句/条件控制语句)
1.if语句的语法结构:四种编写方式
第一种:
i f(布尔表达式){
Java语句;
Java语句;
Java语句;
…
}
第二种:
i f(布尔表达式){
Java语句;
Java语句;
…
} else {
Java语句;
Java语句;
…
}
第三种 :
i f(布尔表达式){
Java语句;
Java语句;
…
} else if (布尔表达式){
Java语句;
Java语句;
…
} else if (布尔表达式){
Java语句;
Java语句;
…
} else if (布尔表达式){
Java语句;
Java语句;
…
}
第四种:
i f(布尔表达式){
Java语句;
Java语句;
…
} else if (布尔表达式){
Java语句;
Java语句;
…
} else if (布尔表达式){
Java语句;
Java语句;
…
} else if (布尔表达式){
Java语句;
Java语句;
…
} else {
Java语句;
Java语句;
…
}
- 重点:对于java语句中的if语句来说,只要有一个分支执行,整个if语句全部结束。
- 注意:第二种和第四种编写方式都带有else分支,这两种方式可以保证会有分支执行。
- 所有的控制语句都可以嵌套使用的,只要合理就行。
注意:嵌套使用的时候,代码格式要保证完美。【该缩进就要缩进,大部分情况下使用大括号包围的就要缩进】 - if语句的分支中只有一条java语句的话,大括号可以省略不写。
例:if (true/false){
一条Java语句;
}
if(true) 一条java语句;(不推荐使用)
system.out.println(); 负责向控制台输出【从内存到控制台,输出的过程】
接受用户键盘输入,从“键盘”到“内存”。
代码:(键盘输入)
java.util.Scanner s = new java.util.Scanner(System.in);
string str = s.next();
或者
int num = s.nextInt();
关于switch语句:
- switch语句也属于选择结构,也是分支语句;
- switch语句的语法结构: 一个比较完整的switch语句应该这样编写
1. switch(int或string类型的字面值或变量){
case int或string类型的字面值或变量:
Java语句;
…
break;
case int或string类型的字面值或变量:
Java语句;
…
break;
case int或string类型的字面值或变量:
Java语句;
…
break;
…
default:
java语句;
…
}
- switch语句的执行原理:
switch后面小括号当中的“数据”和case后面的“数据”进行一一匹配,匹配成功的分支执行。按照自上而下的顺序执行。 - 匹配成功的分支执行,分支当中最后有“break”语句的话,整个switch语句终止。
- 匹配成功的分支执行,分支当中最后没有“break”语句的话,直接进入下一个分支执行(不进行匹配),这种现象称为case穿透现象。【提供break;语句可以避免穿透】
- 所有分支都没有匹配成功,当有default的语句话,会执行default分支当中的语句。
- switch后面和case后面只能是int 或者string 类型的数据,不能探测其他类型。
当然byte,short,char也可以写到switch和case后面,因为他们可以自动类型转换。byte,short,char可以自动转换成int类型。 - case可以合并:
1. int i = 10;
switch(i){
case 1:case 2:case 3:case 10:
System.out.println(“Test Code!”)
}
public class SwitchTest{
public static void main(String[] args) {
java.util.Scanner s = new java.util.Scanner(System.in);
System.out.println(“欢迎使用简单计算机系统”);
System.out.print(“请输入第一个数字:”);
int num1 = s.nextlnt();
System.out.print("请输入运算符:");
int operator = s.nextlnt();
System.out.print("请输入第二个数字:");
int num2 = s.nextlnt();
int result = 0;
switch(operator){
case "+":
result = num1 + num2;
break;
case "-":
result = num1 - num2;
break;
case "*":
result = num1 * num2;
break;
case "/":
result = num1 / num2;
break;
}
System.out.println("运算结果为:"+ num1 + operator + num2 + "=" + result);
}
}
关于for循环语句
- 循环结构:在程序当中总有一些需要反复执行的代码。 将来把需要反复执行的代码片段放到“循环体”,再联合“计数器”,共同控制这段需要反复执行的代码。
- 所有的编程语言支持的循环包括三种:for循环、while循环、do…while循环
- for循环的语法结构
for (初始化表达式;布尔表达式;更新表达式){
//是需要重复执行的代码片段【循环体:由java语句执行】
}
- for循环的执行过程/执行原理?(重要)
4.1 初始化表达式、布尔表达式、更新表达式都不是必须的,但是两个分号是必须的。
4.2 初始化表达式最先执行,并且在整个for循环当中执行一次。
4.3 布尔表达式必须是true/false,不能是其他值。
4.4 for循环的执行过程:
*初始化表达式最先执行,并且在整个for循环当中执行一次
*判断布尔表达式的结果是true还是false
-布尔表达式为true
*执行循环体
*执行更新表达式
*判断布尔表达式的结果是true还是false
-布尔表达式true
…
-布尔表达式false
*循环结束
-布尔表达式false
*循环结束
循环语句和条件判断语句的嵌套使用【for和if的嵌套使用】
计算1~100所有奇数的和【运算符+=就是专门完成追加的】
public class fortest
{
public static void main (string[ ] args){
int sum = 0;
for (int i =1 ;i<=100;i+=2){
sum += i;
}
System.out.println(“sum =” + sum);
}
}
for循环嵌套for循环
public class fortest
{
public static void main (string[ ] args){
for (int i =1 ;i<=10;i++){
}
}
}
while循环语句
- while循环的语法结构:
while(布尔表达式){
循环体;
} - while循环的执行原理:
先判断布尔表达式的结果
*true
-执行循环体
*判断布尔表达式的结果
…
*false
-循环结束 - while循环的循环次数:
0~N次
注意:while循环的循环体可能执行次数为0次。
do…while循环
- do…while循环的语法结构
do{
循环体
}while(布尔表达式); - do…while循环的执行原理
- do…while循环的执行次数:
do…while循环的循环体代码片段执行次数是:1~N次【至少一次】 - 使用do…while循环的注意事项:
do…while循环语句最终有一个“分号”。
关于java控制语句中的break语句
- break是java语言中的关键字,翻译为“中断/折断”
- break + “;” 可以成为一个单独的完整的java语句
- break语句使用在switch语句当中,用来终止switch的语句执行
- break语句同样可以使用在循环语句当中,用来终止循环的执行
- break终止哪个循环呢?
- break;语句使用在for,while,do…while循环语句当中用来跳出循环,终止循环的执行。
7.在默认情况下 :break语句终止的是离它最近的循环语句。
也可以指定终止某个循环,需要给循环起个名字,采用这种语法:break 循环名称;
public class tbreakest
{
public static void main (string[ ] args){
for(int i = 0;i < 10 ; i++){
if (i == 5){
break;
}
System.out.println("")
}
}
}
关于continue语句
- continue表示:继续/下一个
- continue也是一个continue关键字加一个分号构成一个单独的完整的java语句,主要出现循环语句当中来控制循环的执行。
- break和continue的区别
*break表示循环不执行了,跳出循环 ,终止循环。
*continue表示终止当前“本次”循环,直接进入下一个循环继续执行。 - continue也有这样的语法:
continue 循环名称;
例:编写for循环找出1~100中所有的素数
public class tbreakest
{
public static void main (string[ ] args){
for(int i = 2;i <= 100;i ++) {
boolean isSuShu =true;
for (int j = 2; j < i ; j++ ){
if(i % j == 0){
isSuShu =false;
break;
}
}
if(isSuShu){
System.out.println(i);
}
}
}
}