1.运算符
1.1 练习:利用除法和取余运算符,求给定数字的个位、十位、百位、千位.........
package cn.tedu.basic;
/**本类用于测试取余运算符*/
public class Remainder {
public static void main(String[] args) {
int x = 59;
System.out.println("59的十位和个位分别是:");
System.out.println(59/10);//获取十位,包含几个10
System.out.println(59%10);//获取个位,除十位之外还剩多少
int y = 152;
System.out.println("152的百位、十位和个位分别是:");
System.out.println(y / 100);//获取百位,包含几个100
System.out.println(y / 10 % 10);//获取十位,15个十,取余取5
System.out.println(y % 10);//获取个位,除了15个10以外的余数2
}
}
收获:过于简单,无话可说
1.2 练习:自增自减运算符
package cn.tedu.basic;
//此类用于测试自增自减运算符
public class Autodecrement02 {
public static void main(String[] args) {
/**前缀式:++a --a,先改变变量的值,再使用
* 后缀式: a++ a--,先使用,再改变变量的值
* ++:表示给当前变量的值+1
* --:表示给当前变量的值-1
* */
int a = 1;
System.out.println(a++);//1,符号在后,先使用,再自增
System.out.println(a);//2,使用过后自增成2
int b = 1;
System.out.println(++b);//2,符号在前,先自增,再使用
int c = 1;
System.out.println(--c);//0,符号在前,先自减,再打印
int d = 1;
System.out.println(d--);//1,符号在后,先打印,再自减
System.out.println(d);//0,刚刚使用过后就自减
/**之前的代码会对后面的代码产生影响*/
System.out.println(c);//c的初始值是0
/**只有自增自减运算符才会改变变量本身的值
* 普通的四则运算只能改变算式本身的值*/
System.out.println(--c-c-c--);//-1-(-1)-(-1)=1
System.out.println(c);//-2
}
}
收获:之前的代码会对后面的代码产生影响
1.3练习:求3个数的最大值
package cn.tedu.basic;
import java.util.Scanner;
/**需求:接收用户输入的几个整数,并比较输出这几个数的最大值*/
public class MaxNum03 {
public static void main(String[] args) {
//提示用户输入
System.out.println("请输入您要比较的第1个整数:");
int a = new Scanner(System.in).nextInt();
System.out.println("请输入您要比较的第2个整数:");
int b = new Scanner(System.in).nextInt();
System.out.println("请输入您要比较的第3个整数:");
int c = new Scanner(System.in).nextInt();
int t = a > b ? a : b;
int max = t > c ? t : c;
System.out.println("3个数的最大值是:"+ max);
}
}
收获:三目运算符a?b:c的运行逻辑
2.if结构(分支结构)
形式:
2.1练习:判断平年闰年
package cn.tedu.basic;
//本类用于判断平年还是闰年
import java.util.Scanner;
/* 如果年份是闰年,需要满足下面两个条件之一:
* 条件1:能被4整除,并且不能被100整除
* 条件2:能被400整除*/
public class Year001 {
public static void main(String[] args) {
System.out.println("请输入您要判断的年份:");
int year = new Scanner(System.in).nextInt();
String result = "平年";//默认值是平年,假设每年都是平年
if((year % 4 == 0 && year %100 != 0) || year % 400 == 0){
result = "闰年";//符合闰年的条件,修改结果为闰年
}
System.out.println(year+"年是"+result);
}
}
2.2练习:商品打折案例
需求: 接收用户输入的原价。满1000打9折;满2000打8折;满5000打5折
package cn.tedu.basic;
//本类用于测试商品打折案例
import java.util.Scanner;
//需求:接收用户输入的原价,满1000打9折,满2000打8折,满5000打5折
public class Discount002 {
public static void main(String[] args) {
System.out.println("请输入商品原价:");
double price = new Scanner(System.in).nextDouble();
double result = price;
if(price >= 5000) {
result = price *0.5;
}else if(price >= 2000) {
result = price * 0.8;
}else if(price >= 1000) {
result = price *0.9;
}
System.out.println("您实际应该支付:"+result);
}
}
2.3练习:为学员分数分档
需求:90分及以上优秀,80-89 良好,70-79 中等,60-69 及格 ,60分及以下不及格 ,如果用户输入的数据不符合规则,就提示输入数据不合法,要求重新输入
package cn.tedu.basic;
//本类用于为学员分数分档
import java.util.Scanner;
public class Score003 {
//需求:90分及以上优秀
//80-89 良好,70-79 中等,60-69 及格 ,60分及以下不及格
//如果用户输入的数据不符合规则,就提示输入数据不合法,要求重新输入
public static void main(String[] args) {
System.out.println("请输入你的分数:");
double score = new Scanner(System.in).nextDouble();
if(score<0||score>100) {
System.out.println("您输入的数据不合法,请重新输入");
}else if(score>=90) {
System.out.println("您的分数为优秀");
}else if(score>=80) {
System.out.println("您的分数为良好");
}else if(score>=70) {
System.out.println("您的分数为中等");
}else if(score>=60) {
System.out.println("您的分数为及格");
}else if(score<60) {
System.out.println("您的分数不及格");
}
}
}
收获:使用嵌套结构时,应该把难达到的目标写在前面,容易达到的目标写在后面
3.switch结构(选择结构)
switch case 语句用来判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。
当一个case成立,从这个case向后穿透所有case,包括default,直到程序结束或者遇到break程序才结束
形式
3.1练习switch结构中的string类型
package cn.tedu.basic;
import java.util.Scanner;
/*本类用于练习switch结构*/
public class Switch0001 {
//1.创建程序的入口函数main
public static void main(String[] args) {
//2.定义一个变量
System.out.println("今天星期几?");
int a = new Scanner(System.in).nextInt();
//3.完成switch结构的测试
switch(a) {
case 1 : System.out.println("今天吃XX");break;
case 2 : System.out.println("今天吃XX");break;
case 3 : System.out.println("今天吃XX");break;
case 4 : System.out.println("今天吃XX");break;
case 5 : System.out.println("今天吃XX");break;
case 6 : System.out.println("今天吃XX");break;
case 7 : System.out.println("今天吃XX");break;
default : System.out.println("随便");break;
}
}
}
收获
//1.变量a支持的类型:byte short char int string
//2.执行顺序,程序会以a的值依次与每个case做比较,若不加break
//会向后穿透所有case,包括default
//3.default——保底选项
//4.break和default都是可选择的,需根据实际情况选择是否添加
4.for结构(循环结构)
循环结构是指在程序中需要反复执行某个功能而设置的一种程序结构。
它由循环体中的条件,判断继续执行某个功能还是退出循环。
根据判断条件,循环结构又可细分为先判断后执行的循环结构和先执行后判断的循环结构。
for形式
我们明明只写了一句打印语句,为什么打印了多个数字呢?
希望通过下图帮你理解for循环的执行顺序:
4.1练习打印8,88,888,8888
package cn.tedu.basic;
//本类用于测试for循环,打印8,88,888,8888,
public class For0002 {
public static void main(String[] args) {
for(int i = 8 ; i <= 8888 ; i= i*10+8) {
System.out.println(i+",");
}
}
}
4.2练习求[1,100]的累加之和、偶数之和、偶数个数
package cn.tedu.basic;
/*本类用于测试for循环结构2*/
public class For0003 {
public static void main(String[] args) {
int a = 0;
for( int i = 1;i<=100;i++) { a = a + i;
}
System.out.println(a);//1~100累加之和
int b = 0;
for(int j = 1; j <=100;j++) {
if (j%2==0) {
b=b+j;
}
}
System.out.println(b);//1~100中偶数之和
int c = 0;
for(int t=1;t<=100;t++) {
if(t%2==0) {
c++;
}
}
System.out.println(c);//1~100中偶数个数
int d = 0;
for(int q=1;q<=100;q++) {
if(q%2==1) {
d++;
}
}
System.out.println(d);//1~100中奇数个数
}
}
收获
for(){;
}
if(){;
}
注意分号位置以及灵活运用