1.switch
switch(表达式){
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
……
default:
语句体n;
break;
}格式解释:
switch表示这是switch语句
a)表达式的取值:byte,short,int,char
b)JDK5之后可以是枚举
c)JDK7之后可以是String
case后面跟的是要和表达式进行比较的值
语句体部分可以是一条或多天语句
break表示中断、结束的意思,可以结束switch语句
default语句表示所有情况都不匹配的时候,就执行该出的内容,和if语句的else相似
执行流程
首先计算出表达式的值
其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。
最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。
注意事项:
case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的。
default可以省略,一般不建议。
break可以省略,一般不建议。
default可以出现在switch语句的任意位置。
switch语句的结束条件:1.遇到break ,2.执行到程序的末尾。
import java.util.Scanner;
/**
* 键盘录入一个数据,根据这个数据,我们输出对应的星期几
* 键盘录入1,对应输出星期一
* 键盘录入2,对应输出星期二
* ...
* 键盘录入7,对应输出星期日
*/
public class SwitchDemo {
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.print("请输入数字:");
int day = input.nextInt();
String str = "";
switch(day){
case 1:
str = "星期一";
break;
case 2:
str = "星期二";
break;
case 3:
str = "星期三";
break;
case 4:
str = "星期四";
break;
case 5:
str = "星期五";
break;
case 6:
str = "星期六";
break;
case 7:
str = "星期日";
break;
default:
str = "输入数据不合法";
break ;
}
System.out.println(str);
}
}在做判断的时候,我们有两种选择,if语句和switch语句,那么,我们到底该如何选择使用哪种语句呢?
if语句使用场景:
针对结果是boolean类型的判断
针对一个范围的判断
针对几个常量值的判断
switch语句使用场景:
针对几个常量值的判断
2.循环结构
循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适的时候把循环条件修改为false,从而结束循环,否则循环将一直执行下去,形成死循环。
循环语句的组成:
初始化语句:一条或者多条语句,这些语句完成一些初始化操作。
判断条件语句:这是一个boolean表达式,这个表达式能决定是否执行循环体。
循环体语句:这个部分是循环体语句,也就是我们要多次做的事情。
控制条件语句:这个部分在依次循环体结束后,下一次循环判断条件执行前执行。通过用于控制循环条件中的变量,使得循环在合适的时候结束。
3.循环结构(for循环语句)
for循环语句格式:
for(初始化语句;判断条件语句;控制条件语句){
循环体语句;
}执行流程:
1.执行初始化语句
2.执行判断条件语句,看其结果是true还是false,如果是false,循环结束;如果是true,循环执行。
3.执行循环体语句
4.执行控制条件语句
5.回到2继续

/**
* for循环
*/
public class ForDemo {
public static void main(String[] args){
for(int i = 0;i<4;i++){
System.out.println("Hello World");
}
}
}注意事项:
1.判断条件语句的结果是一个boolean类型。
2.循环体语句如果是一条语句,大括号可以省略;如果是多条语句,大括号不可以省略。建议永远不要省略。
/**
* 在控制台输入1-10
*/
public class ForDemo {
public static void main(String[] args){
for(int i = 1;i<=10;i++){
System.out.println(i);
}
}
}/**
* 求1-10的和
*/
public class ForDemo {
public static void main(String[] args){
int sum = 0;
for(int i = 1;i<=10;i++){
sum += i;
}
System.out.println(sum);
}
}/**
* 求1-100的奇数和偶数之和
*/
public class ForDemo {
public static void main(String[] args){
int odd = 0;
int even = 0;
for(int i =0;i<=100;i++){
if(i %2 == 0){
even += i;
}else {
odd += i;
}
}
System.out.println("奇数和是"+odd+",偶数和是"+even);
}
}/**
* 求5的阶乘
* 什么是阶乘?
* n! = n*(n-1)!
* n! = n *(n-1)*(n-2)*...*3*2*1
*/
public class ForDemo {
public static void main(String[] args){
int num = 1;
for (int i =1;i<=5;i++){
num *= i;
}
System.out.println(num);
}
}/**
* 水仙花数
* 所谓的水仙花数就是一个三位数,其各位数字的立方和等于该数本身。
* 举例:153就是一个水仙花数
* 153 = 1*1*1 + 5*5*5 +3*3*3
*/
public class ForDemo {
public static void main(String[] args){
for(int i = 100;i<=999;i++){
int baiwei = i / 100;
int shiwei = i / 10 % 10;
int gewei = i % 10;
int result = baiwei * baiwei * baiwei + shiwei * shiwei * shiwei + gewei * gewei * gewei;
if(i == result){
System.out.println(i+"是水仙花数");
}
}
}
}4.循环结构(while循环语句)
while循环语句格式:
初始化语句;
while(判断条件语句){
循环体语句;
控制条件语句;
}for循环和while循环的区别?
使用区别:控制条件语句所控制的那个变量,在for循环结束后,接不能再被访问到了,而while循环结束后,还可以继续使用,如果你想继续使用,就用while,否则推荐使用for循环,原因是for循环结束,该变量就从内存中消失,能够提高内存的使用效率。
场景区别:for循环适合针对一个范围判断进行操作,当然这个范围是数字;而while循环适合判断不明确操作。例如:你去跑十圈,就用for循环;你跑到死为止,就用while循环了。
/**
* 我国最高山峰是珠穆朗玛峰:8848米,现在我有一张足够大的纸张,厚度是0.01米。
* 请问:我折叠多少次,就可以保证厚度不低于珠穆朗玛峰的高度?
* 分析:
* 1.定义一个统计变量,默认值位0
* 2.最高山峰是珠穆朗玛峰:8848米,这是最终的厚度
* 我现在有一张足够大的纸张,厚度为:0.01米,这是最初的厚度。
* 3.我折叠多少次,就可以保障厚度不低于珠穆朗玛峰的高度
* 折叠依次有什么变化?就是厚度是以前的2倍。
* 4.只要每次变化的厚度没有查过珠穆朗玛峰的高度,就折叠
* 5.输出统计变量
*/
public class WhileDemo {
public static void main(String[] args){
int count = 0;
double end = 8848;
double start = 0.01;
while(start < end){
count ++;
start *= 2;
}
System.out.println(count);
}
}5.循环结构(do...while结构)
do...while循环结构格式:
初始化条件;
do{
循环体语句;
控制条件语句;
}while(判断条件语句);循环结构的区别及注意事项
三种循环语句其实都可以完成一行的功能,也就是说可以等价转换,但还是有小区别的。do...while循环至少会执行一次循环体。for循环和while循环只有在条件成立的时候才会去执行循环体。
写程序优先考虑for循环,再考虑while循环,最后考虑do...while循环。
/**
* 输出4行5列的星星
*/
public class ForForDemo {
public static void main(String[] args){
for(int i = 0;i<4;i++){
for(int y = 0;y<5;y++){
System.out.print("*");
}
System.out.println();
}
}
}6.跳转控制语句
java中的goto是保留字,目前不能使用。虽然没有goto可以增强程序的安全性,但是也带来了很多不便,比如说,我想在某个循环在某一步的时候就结束,现在就做不了这件事。为了弥补这个缺陷,java就提供了break,continue和return来实现控制语句的跳转和终端。
本文出自 “11831428” 博客,请务必保留此出处http://11841428.blog.51cto.com/11831428/1853470
原文:http://11841428.blog.51cto.com/11831428/1853470