Java学习之路-day03

Java学习第三天,又是一天的新收获,晚自习有个小测验,题目没有看好,代码竟然少敲了一半,真丫应了那句老话,别浪~~我们能赢。废话不多说,希望天天进步,下面开始总结今学习的知识 (在代码中循环和判断是重点,常用的部分,学习中一定要很好掌握):
1、三种循环语句
1.1for(初始化;条件判断;步进语句){
执行语句;
}
1.2
初始化;
while(条件判断){
执行语句;
步进语句;
}
1.3
初始化;
do{
执行语句;
步进语句;
}while(条件判断);
ps:三种循环的区别:
1、当循环条件从来不满足的情况下,for和while循环会执行0次,do-while循环会至少执行一次;
2、for循环的变量是定义在小括号里的,只能在循环体中使用,出了循环体无效;
while和do-while循环的变量是定义在外面的,出循环还可以继续使用;//初始化语句
2、三种判断
2.1if(条件判断){
执行语句;
}
2.2if(条件判断){
执行语句1;
} else{
执行语句2;
}
2.3 switch(被检测值){
case 值1:
执行语句;
break;

default:
执行语句n;
break;
//break:
1、可以用在switch语句中,一旦执行,将结束switch语句立刻结束;
2、使用在循环语句中,一旦执行,将跳出循环语句,执行循环外的语句;
3、break关键字不可省略,如果省略不写,会造成case语句穿透,直到遇到下一个break才会跳出循环;
}
4.循环判断的使用
循环次数确定的:多用for循环,否则多用while循环;
5.死循环
死循环:就是一段永远执行的代码;
while(true){}//标准格式

while(true){

}
System.out.println(“循环不到的语句”);//程序编译会报错,循环不到的语句,因为是死循环永远执行;
6.将今天的小测试题目上传,大家可以尝试练习;@我,我会把答案发送给你;仅供参考;
编程题:
第一题:分析以下需求,并用代码实现:
定义一个int类型变量初始化值为2-100之间任意一个整数,求2到该变量之间的偶数个数及奇数的和,并将结果打印到控制台上

public class CountEvenOdd{
	public static void main(String[]args){
		//2到100之间选取10进行运算
		int count1 = 0;
		int sum = 0;
		for(int i = 2;i <=10;i++){
			if(i % 2 == 0){
			count1++;
			}else {
			sum +=i;
			}
		}

		System.out.println("2到10之间的偶数个数为:"+count1);
		System.out.println("===========================");
		System.out.println("2到10之间的奇数的和为:"+sum);
	}
}

第二题:分析以下需求,并用代码实现:
打印1到100之内的整数,但数字中包含9的要跳过,中间用逗号分隔,统计满足条件的数字的个数并打印

public class CountNoNine{
	public static void main(String[]args){
	//打印1到100之内的整数,但数字中包含9的要跳过,中间用逗号分隔,统计满足条件的数字的个数并打印
	int j = 0;
	for(int i = 1;i<=100;i++){
		if((i-9)%10 == 0){//9、19、29、39、49、59、69、79、89、 99
			j++;
			System.out.println();
			continue;
			}else if((int)(i/10)==9){//90-99
				j++;
				continue;
			}
			System.out.print(i+",");//最后一位的逗号怎么进行判断去掉
			
		}
		System.out.println();
		System.out.println("满足条件的数字的个数:"+(j-1));
	}
}

第三题:分析以下需求,并用代码实现:
1.某人准备去海南旅游,现在要订购机票。机票的价格受季节旺季、淡季的影响,头等舱和经济舱价格也不同
2.假设机票原价假设为5000元(自定义变量),
4-10月为旺季,旺季头等舱打9折,经济舱打8折,
淡季头等舱打5折,经济舱打4折。
3.编写程序,使用嵌套if选择结构根据出行的月份和选择的仓位输出实际的机票价格


import java.util.*;
public class TravelPrice{
	public static void main(String[]args){
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入出行月份:");
		int m = sc.nextInt();//输出月份
		System.out.println("请选择出行舱位:");
		String s = sc.next();//输出舱位
		month(m,s);
	}
	public static void month(int month ,String c){
		String a = "头等舱";
		String b = "经济舱";
		int sum = 0;
		if(month ==4 ||month ==5 || month ==6 ||month ==7 ||month ==8 ||month ==9 || month ==10){
			
			if(c.equals(a)){
				sum = 4500;
				System.out.println("机票价格"+sum);
			}else if(c.equals(b)){
				sum = 4000;
				System.out.println("机票价格"+sum);
			}else{
				System.out.println("对不起,您选择舱位有误,请重新选择");
			}
		
		}else if(month ==1 || month ==2 || month ==3 || month ==11 ||month ==12){
			if(c.equals(a)){
				sum = 2500;
				System.out.println("机票价格"+sum);
			}else if(c.equals(b)){
				sum = 2000;
				System.out.println("机票价格"+sum);
			}else{
				System.out.println("对不起,您选择舱位有误,请重新选择");
			}
		
		}else{
			System.out.println("对不起,您输入的月份有错误,请重新输入");
		}
	
	}

}

代码还有一些bug问题,请大神留言,有没有更好优化的代码,进行实现?求指点,非常感谢
》》》day02最后遗留的小问题 byte a = 100L;已经解决
》》》因为在Java机制中默认整数型是int类型的,long类型不是java默认的机制类型,如果long>byte必须进行强转,否则编译中会报错;byte a = (byte)100L;正确
PS:谁有《Java编程思想》的电子版,请发我一份,非常感谢;

展开阅读全文

没有更多推荐了,返回首页