今日内容
1.if...else...和三元运算符的区别
面试题:
if和三元运算符的区别
共同:
if...else..和三元运算符都是针对两种情况进行判断,都有表达式
不同:
if...else..
可以表达的范围很大,不仅可以用运算符达成目的,还可以用表达式来完成
三元运算符
表达的范围不如if,不能在结构中加入表达式
结论:if...else...可以表达,可以做到的,三元运算符做不到
三元运算符可以做到的,if...else...都可以做到!
import java.util.Scanner;
class ifDemo{
public static void main(String[] args){
//键盘输入
Scanner sc = new Scanner(System.in);
//提示输入一个数
System.out.print("请输入一个数:");
int num = sc.nextInt();
//判断这个数据是否为偶数
if(num%2 == 0){ //num模2,取余数,为0就是偶数,不为零就是奇数
System.out.println("这是一个偶数!");
}else{
System.out.println("这是一个奇数!");
}
}
}
2.流程控制语句switch
选择结构语句switch
格式
switch(变量名){
case 值1:
表达式1;
break;
case 值2:
表达式2;
break;
...
...
default:
表达式n;
break;
}
执行流程
switch后面的变量名(变量值)需要和case值匹配
匹配到哪个case值,就进行那个表达式,break结束语句
若没有匹配的case值,则执行default表达式,break结束语句
面试题:
switch语句后面的这个变量名可以是什么样的数据类型?
switch后面的变量名(变量值)可以是:
byte char short int
jdk7以后可以是String类型
switch注意事项
1)switch后面的变量值可以是byte int short char,但是case后面的值只能是常量(Java是强类型语言,语言结构严谨)
2)switch中,case值一旦匹配,完成对应表达式后一定加break结束语句,如果没加就会造成case"穿透",直到遇见break为止
3)switch语句中的default语句在什么位置都可以
---末尾--->可以不带break结束语句,因为代码由上而下运行,自然到结尾结束
---首段--->一定要带break结束语句,如果不带,当没有匹配的case值时,直接执行default表达式,也会造成穿透
4)switch语句结束条件
---break结束语句--->case后的,default后的
---语句自然运行到末尾结束
//键盘录入一个值(1-7),判断是星期几?
import java.util.Scanner;
class switchDemo{
public static void main(String[] args){
//键盘输入
Scanner sc = new Scanner(System.in);
//提示输入一个值
System.out.print("请输入今天是是星期几:");
int num = sc.nextInt();
//switch语句进行选择判断
switch(num){
//case值后加的是:
case 1:
System.out.println("今天是星期一!");
//一定要加break结束,否则会造成case穿透
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("请输入有效的数值!");
//因为default在末尾,所以这里break可加可不加
break;
}
}
}
case穿透反面案例
/*
键盘录入一个月份的值,判断季节
3,4,5 春季
6,7,8 夏季
9,10,11 秋季
12,1,2 冬季
case穿透反面案例
*/
import java.util.Scanner;
class switchTest1{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.print("请输入一个值:");
int num = sc.nextInt();
//case穿透反面案例
switch(num){
default:
System.out.println("请输入有效值!");
//break;
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;
case 8:
System.out.println("夏季!");
//break;
case 9:
System.out.println("秋季!");
//break;
case 10:
System.out.println("秋季!");
//break;
case 11:
System.out.println("秋季!");
//break;
case 12:
System.out.println("冬季!");
//break;
}
}
}

case穿透正面案例
/*
键盘录入一个月份的值,判断季节
3,4,5 春季
6,7,8 夏季
9,10,11 秋季
12,1,2 冬季
case穿透正面案例
大量节约空间,减少代码冗余
*/
import java.util.Scanner;
class switchTest2{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.print("请输入一个值:");
int num = sc.nextInt();
//case穿透正面案例
switch(num){
default:
System.out.println("请输入有效值!");
break;
case 1:
//break;
case 2:
//break;
case 12:
System.out.println("冬季!");
break;
case 3:
//break;
case 4:
//break;
case 5:
System.out.println("春季!");
break;
case 6:
//break;
case 7:
//break;
case 8:
System.out.println("夏季!");
break;
case 9:
//break;
case 10:
//break;
case 11:
System.out.println("秋季!");
break;
}
}
}
3.循环结构语句
3.1for循环语句
for循环语句结构
格式
for(初始化表达式;条件表达式;控制语句){
循环体语句;
}
执行流程
当需要进行循环时(有次数),用到for循环
初始化表达式定义一个初始变量
根据条件表达式判断值是否符合条件
---符合条件--->执行循环体语句--->进行控制语句,在判断条件是否符合,进行下一轮循环
---不符合条件--->跳出循环--->结束或者继续进行下面的代码
控制语句防止程序进入死循环
水仙花数(三位数)
每一位的立方相加等于这个数本身
//输出并统计所有水仙花数
import java.util.Scanner;
class forDemo{
public static void main(String[] args){
//统计数据初值
int cont = 0 ;
//遍历[100-1000)
for(int m = 100;m<1000;m++){
//每个数位置上的数字怎么获取
//百位
int a = m/10/10 % 10 ;
//十位
int b = m/10 % 10 ;
//个位
int c = m % 10 ;
//水仙花数: m = a*a*a + b*b*b + c*c*c
if(m == a*a*a + b*b*b + c*c*c){
//每循环一次记录一次
cont++;
System.out.println("水仙花数是:"+m);
}
}
System.out.println("水仙花数的个数是:"+cont);
}
}
3.2while循环语句
while循环语句结构
格式
初始化语句;
while(条件表达式){
循环体语句;
控制体语句;
}
执行流程
初始化语句先赋值
根据条件表达式判断条件
---符合条件--->进入循环体语句--->控制体语句,再根据条件表达式判断,没有控制体语句,死循环
---不符合--->跳过循环,运行后面代码
class whileDemo{
public static void main(String[] args){
//赋初值
int m = 100 ;
//统计赋初值
int cont = 0 ;
while(m<1000){
//循环体语句
int a = m/10/10 % 10 ;
int b = m/10 % 10 ;
int c = m % 10 ;
if( m == a*a*a + b*b*b + c*c*c ){
//统计数
cont++ ;
System.out.println("水仙花数是:"+m);
}
m++;
}
System.out.println("水仙花数个数是:"+cont);
}
}
面试题:
for和while循环有什么区别?
1)格式上的不同
for循环把所有写在一起了,while循环分开写了
2)是否明确了循环次数(不绝对)
在开发中for循环使用最多
如果明确了循环次数--->使用for循环
没有循环次数限制--->使用while循环
3)从内存角度
for循环体内的一切变量出了循环体就被释放,合理利用内存
while不会
3.3do..while循环语句
do...while循环语句结构
格式
初始化语句;
do{
循环体语句;
控制体语句;
}while(条件表达式) ;
执行流程
初始化语句赋值
判断条件--->成立--->执行循环体--->控制体语句--->再次判断....
特点
和for,while最大的区别就是
即使条件不成立,循环体至少执行一次!
4.死循环结构
两种死循环格式:
for(;;){
循环体语句;
}
while(true){ //推荐这个格式
循环体语句;
}
循环条件是一个恒定条件,永远满足循环条件就会死循环
死循环的格式最终里面完成某个逻辑,当达到某种条件结束循环,会用到一个跳转控制语句 break(中断,结束) ;
产生一个[0-1)之间的随机数 通过刚才的Math.random()
/*
想要完成一个猜数字游戏:使用循环来操作,不断的键盘录入数据,进行猜
大了,提示大了,
小了,提示小了
如果一致,恭喜猜中了
*/
import java.util.Scanner;
class DieLoopDemo{
public static void main(String[] args){
//生成一个随机数,默认double,加强转
//不能写进循环体内,不然永远无法猜出数!
int num = (int)(Math.random()*100+1) ;
//记录猜的次数
int cont = 0 ;
while(true){
//记录次数
cont++;
//从键盘输入要猜的数
Scanner sc = new Scanner(System.in);
//提示要输入数字
System.out.print("请输入要猜的数字");
int m = sc.nextInt();
//判断输入数和生成数
if(m>num){
System.out.println("大了,小一点!");
}else if(m<num){
System.out.println("小了,大一点!");
}else{
System.out.println("猜对了!");
//猜对之后中断循环
break;
}
}
System.out.println("一共猜了"+cont+"次");
}
}
5.for循环嵌套
for循环的嵌套
for循环的循环体语句里面是for循环
for(初始化语句1;条件表达式1;控制体语句1){
for(初始化语句2;条件表达式2;控制体语句2){
循环体语句.....
}
}
//九九乘法表
class forforTest{
public static void main(String[] args){
//为了保证有数据 数据从1开始
for(int x = 1 ; x <=9 ; x ++){//行数
for(int y = 1 ; y <=x ; y ++){//列数,在变化
//循环体语句
//转义字符: "t" 制表符 类似tab键的效果
System.out.print(x +"*"+y+"="+(y*x)+"t") ;
}
System.out.println() ;
}
}
}
最后
以上就是飞快外套最近收集整理的关于JAVA10_31学习总结(switch,for,while,dowhile)今日内容的全部内容,更多相关JAVA10_31学习总结(switch内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复