XX教育 - basic - day04

一、basic

4、day04

0) day04_all.txt

回顾:
1.运算符:
  1)算术:+,-,*,/,%,++,--
  2)关系:>,<,>=,<=,==,!= boolean
  3)逻辑:&&,||,! boolean
  4)赋值:=,+=,-=,*=,/=,%=
  5)字符串连接:+
  6)三目运算符:boolean?1:2
2.分支结构:
  1)if:1
  2)if...else:2
  3)if...else if:4)switch...case:多
    优点:效率高、结构清晰
	缺点:整数、相等
	break:跳出switch




笔记:
1.循环:反复执行一段相同或相似的代码
2.循环三要素:
  1)循环变量的初始化
  2)循环的条件(以循环变量为基础)
  3)循环变量的改变(向着循环的结束变)
  循环变量:在循环过程中反复改变的那个量
3.循环结构:
  1)while:先判断后执行,有可能一次都不执行
  2)do...while:先执行后判断,至少会执行一次
               要素1与要素3相同时,首选do...while
  3)for:应用率最高,固定次数循环
4.break:跳出循环
  continue:跳过循环体中剩余语句而进入下一次循环


练习:----------------------每人至少写两次
1)while版的猜数字
2)do...while版的猜数字
3)for的随机加法运算器

课后作业:
  sum=11111111111100
  sum=3.3182....9937



Math.random()-----------------0.00.9999999999...
*100--------------------------0.099.999999999...
(int)-------------------------099



加数为099之间的随机数

int score = 0; //得分
for(int i=1;i<=10;i++){ //10次
  //1.出题  2.答题  3.判题
}
System.out.println("score"+score);

(1)45+5=?
算吧!
50
答对了

(2)56+97=?
算吧!
125
答错了

(3)56+97=?
算吧!
125
答错了

(4)56+97=?
算吧!
125
答错了

(5)56+97=?
算吧!
125
答错了

(6)56+97=?
算吧!
125
答错了

(7)56+97=?
算吧!
125
答错了

(8)56+97=?
算吧!
125
答错了

(9)56+97=?
算吧!
125
答错了

(10)56+97=?
算吧!
125
答错了

总得分为:10





//    1             2           3 
for(int times=0 ; times<10 ; times++){
  System.out.println("行动是成功的阶梯");  //4
}
System.out.println("over");


12432432432432432432
12432432432432432432

int times=0; //1
while(times<10){ //2
  System.out.println("行动是成功的阶梯"); //4
  times++;   //3
}
System.out.println("over");





案例难


11000之内的随机数



Math.random()---------------0.00.999999999999...
*1000-----------------------0.0999.9999999999...
(int)-----------------------0999
+1--------------------------11000




Math.random()---------------0.00.999999999999...
*1000-----------------------0.0999.9999999999...
+1--------------------------1.01000.999999999...
(int)-----------------------11000




int num = 250; //藏的那个数

循环变量:用户猜的那个数guess
1)System.out.println("猜吧!");
  int guess = scan.nextInt();
2)guess!=num
3)System.out.println("猜吧!");
  guess = scan.nextInt();



Guessing


输入0,退出循环


break;


猜吧!
300
太大了

猜吧!
200
太小了

猜吧!
249
太小了

猜吧!
250
恭喜你,猜对了



案例一:
  输出10"行动是成功的阶梯":
    行动是成功的阶梯
	行动是成功的阶梯
	行动是成功的阶梯
	行动是成功的阶梯
	行动是成功的阶梯
	行动是成功的阶梯
	行动是成功的阶梯
	行动是成功的阶梯
	行动是成功的阶梯
	行动是成功的阶梯
  循环变量:次数times
  1)int times=0;
  2)times<10
  3)times++;
  times=0/1/2/3/4/5/6/7/8/9/10时结束

案例二:
  输出9的乘法表:
    1*9=9
	2*9=18
	3*9=27
	4*9=36
	5*9=45
	6*9=54
	7*9=63
	8*9=72
	9*9=81
  循环变量:乘数num
  1)int num=1;
  2)num<=9
  3)num++;
  num=1/2/3/4/5/6/7/8/9/10时结束

  循环变量:乘数num
  1)int num=9;
  2)num>=1
  3)num--;
  num=9/8/7/6/5/4/3/2/1/0时结束
  

循环变量:份数times
1)int times=0;
2)times<10
3)times++;
times=0/1/2/3/4/5/6/7/8/9/10时结束


						份数为010份吗? 不够 打印一份 份数为110份吗? 不够 打印一份 份数为210份吗? 不够 打印一份 份数为310份吗? 不够 打印一份 份数为410份吗? 不够 打印一份 份数为510份吗? 不够 打印一份 份数为610份吗? 不够 打印一份 份数为710份吗? 不够 打印一份 份数为810份吗? 不够 打印一份 份数为910份吗? 不够 打印一份 份数为1010份吗? 够了




循环变量:圈数count
1)int count=0;
2)count<3
3)count++;
count=0/1/2/3时结束


                      圈数为03圈吗? 不够 跑一圈  圈数为13圈吗? 不够 跑一圈  圈数为23圈吗? 不够 跑一圈  圈数为33圈吗? 够了





案例一:
  输出10"行动是成功的阶梯":
    行动是成功的阶梯
	行动是成功的阶梯
	行动是成功的阶梯
	行动是成功的阶梯
	行动是成功的阶梯
	行动是成功的阶梯
	行动是成功的阶梯
	行动是成功的阶梯
	行动是成功的阶梯
	行动是成功的阶梯

案例二:
  输出9的乘法表:
    1*9=9
	2*9=18
	3*9=27
	4*9=36
	5*9=45
	6*9=54
	7*9=63
	8*9=72
	9*9=81




1)顺序结构:从上往下逐行执行,每句必走
2)分支结构:有条件的执行某语句一次,并非每句必走
3)循环结构:有条件的执行某语句多次,并非每句必走






while(boolean){ //多次
  语句块/循环体------------反复干的那个事
}
System.out.println("over");



if(boolean){ //一次
  语句块
}
System.out.println("over");




1/3/5/7/8/10/12--------------314/6/9/11---------------------302----------------------------28/29int a=3,b=8,c=2,d=1; //升序(a=2,b=3,c=8)
若a>b则交换,保证a<b
若a>c则交换,保证a<c
若a>d则交换,保证a<d
若b>c则交换,保证b<c
若b>d则交换,保证b<d
若c>d则交换,保证c<d


int a=8,b=55; //升序(a=5,b=8)
if(a>b){
  int t=a; //t=8
  a=b;     //a=5
  b=t;     //b=8
}



int t=a;a=b;b=t; //追尾并绕圈
int t=b;b=a;a=t;



System.out.println("请输入两个数:");
int a = scan.nextInt();
int b = scan.nextInt();

5       6
5 6
5
6


int a=8,b=5;
int max = a>b?a:b;

if(a>b){
  max=a;
  ...
  ...
}else{
  max=b;
}

1) Addition.java

package day04;
import java.util.Scanner;
//随机加法运算器
public class Addition {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int score = 0; //得分
		for(int i=1;i<=10;i++){ //10次
			int a = (int)(Math.random()*100); //加数a
			int b = (int)(Math.random()*100); //加数b
			int result = a+b; //存和
			System.out.println("("+i+")"+a+"+"+b+"=?"); //1.出题
			
			System.out.println("算吧!");
			int answer = scan.nextInt(); //2.答题
			
			if(answer==-1){
				break;
			}
			if(answer==result){ //3.判题
				System.out.println("答对了");
				score += 10; //答对一题加10分
			}else{
				System.out.println("答错了");
			}
		}
		System.out.println("score="+score);
		
	}
}

2) ForDemo.java

package day04;
//for的演示
public class ForDemo {
	public static void main(String[] args) {
		int sum = 0; //和
		for(int i=1;i<=100;i++){
			if(i%10!=3){ //个位不得3的
				sum += i;
			}
		}
		System.out.println("sum="+sum);
	
		/*
		int sum = 0; //和
		for(int i=1;i<=100;i++){
			//求1到100的累加和,但是跳过个位为3的
			if(i%10==3){ //个位为3的
				continue; //跳过循环体中剩余语句而进入下一次循环
			}
			sum += i;
		}
		System.out.println("sum="+sum);
		*/
		/*
		 * sum=0
		 * i=1 sum=1
		 * i=2 sum=1+2
		 * i=3 
		 * i=4 sum=1+2+4
		 * ...
		 * i=13 
		 */
		
	
		/*
		int sum = 0; //和
		for(int i=1;i<=100;i++){
			if(sum>4000){
				break;
			}
			sum += i;
		}
		System.out.println("sum="+sum);
		*/
		
		
		/*
		for(int i=0,j=6;i<5;i+=2,j-=2){
		}
		*/
		/*
		 * i=0,j=6
		 * i=2,j=4
		 * i=4,j=2
		 * i=6,j=0
		 */
		
		/*
		for(;;){ //没有条件的循环就是个死循环
			System.out.println("我要学习...");
		}
		*/
		
		/*
		int sum = 0;
		for(int i=1;i<=100;){
			sum += i;
			i++;
		}
		System.out.println("sum="+sum);
		*/
		
		/*
		int sum = 0;
		int i=1;
		for(;i<=100;i++){
			sum += i;
		}
		System.out.println("sum="+sum);
		*/
		
		/*
		//累加:1+2+3+4+5+...+99+100=?
		int sum = 0; //和
		for(int i=1;i<=100;i++){
			sum += i;
		}
		System.out.println("sum="+sum);
		*/
		/*
		 * sum=0
		 * i=1 sum=1
		 * i=2 sum=1+2
		 * i=3 sum=1+2+3
		 * i=4 sum=1+2+3+4
		 * ...
		 * i=100 sum=1+2+3+4+...+100
		 * i=101
		 */
		

		
		/*
		for(int times=0;times<10;times++){
			System.out.println("行动是成功的阶梯");
		}
		
		for(int num=1;num<=9;num++){
			System.out.println(num+"*9="+num*9);
		}
		*/
	}
}

3)Guessing.java

package day04;
import java.util.Scanner;
//猜数字游戏
public class Guessing {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int num = (int)(Math.random()*1000+1); //1到1000之内的随机数
		System.out.println(num); //作弊

		int guess;
		do{
			System.out.println("猜吧!");
			guess = scan.nextInt(); //1,3
			if(guess==0){
				break; //退出循环
			}
			if(guess>num){
				System.out.println("太大了");
			}else if(guess<num){
				System.out.println("太小了");
			}
		}while(guess!=num); //2
		if(guess==num){
			System.out.println("恭喜你,猜对了!");
		}else{
			System.out.println("下次再来吧!");
		}
		
		/*
		System.out.println("猜吧!");
		int guess = scan.nextInt(); //1.
		while(guess!=num){ //2.
			if(guess==0){
				break; //退出循环
			}
			if(guess>num){
				System.out.println("太大了");
			}else{
				System.out.println("太小了");
			}
			System.out.println("猜吧!");
			guess = scan.nextInt(); //3.
		}
		if(guess==num){
			System.out.println("恭喜你,猜对了!");
		}else{
			System.out.println("下次再来吧!");
		}
		*/
		
	}
}

4) Homework.java

package day04;
//作业讲解
public class Homework {
	public static void main(String[] args) {
		/*
		//6.根据年份和月份,计算天数
		int year = 2003; //年
		int month = 4;   //月
		int days = 0;    //天数
		
		switch(month){
		case 1:
		case 3:
		case 5:
		case 7:
		case 8:
		case 10:
		case 12:
			days = 31;
			break;
		case 4:
		case 6:
		case 9:
		case 11:
			days = 30;
			break;
		case 2:
			if((year%4==0 && year%100!=0) || year%400==0){
				days = 29;
			}else{
				days = 28;
			}
		}
		System.out.println("days="+days);
		*/
		
		/*
		//5.个人所得税
		double salary = 10000.0; //工资
		double taxSalary = salary-3500; //计税工资
		double tax = 0.0; //税
		if(taxSalary<=0){
			tax = 0.0; //不纳税
		}else if(taxSalary<=1500){
			tax = taxSalary*0.03-0;
		}else if(taxSalary<=4500){
			tax = taxSalary*0.1-105;
		}else if(taxSalary<=9000){
			tax = taxSalary*0.2-555;
		}
		System.out.println("tax="+tax);
		*/
		
		/*
		//4.闰年的判断
		int year = 2002;
		if((year%4==0 && year%100!=0) || year%400==0){
			System.out.println(year+"是闰年");
		}else{
			System.out.println(year+"不是闰年");
		}
		*/
		
		/*
		 * 补充:
		 * 1.变量的作用域:
		 *     从变量的声明开始,到包含它最近的大括号结束
		 * 2.变量的重名问题:
		 *     作用域重叠时,变量不能同名
		 */
		/*
		int a = 5;
		if(a>2){
			int b = 6;
			//int a = 55; //作用域重叠时,不能同名
		}else{
			int b = 8;
		}
		*/
		/*
		int a = 5;
		if(a>2){
			int b = 8;
			System.out.println(a);
			System.out.println(b);
		}
		System.out.println(a);
		//System.out.println(b); //编译错误,超出作用范围了
		*/
		
		
		/*
		//3.三个数的排序:
		int a=3,b=6,c=2;
		if(a>b){
			int t=a;
			a=b;
			b=t;
		}
		if(a>c){
			int t=a;
			a=c;
			c=t;
		}
		if(b>c){
			int t=b;
			b=c;
			c=t;
		}
		System.out.println("a="+a);
		System.out.println("b="+b);
		System.out.println("c="+c);
		*/
		
		
		
		/*
		//2.两个数的排序:
		int a=8,b=5; //升序(a=5,b=8)
		if(a>b){
			int t=a;
			a=b;
			b=t;
		}
		System.out.println("a="+a);
		System.out.println("b="+b);
		*/
		
		
		/*
		//1.求两个数中的最大值
		int a=8,b=55;
		int max = a>b?a:b;
		System.out.println("max="+max);
		*/
	}
}

5) WhileDemo.java

package day04;
//while的演示
public class WhileDemo {
	public static void main(String[] args) {
		
		int num = 1;   //1.
		while(num<=9){ //2.
			System.out.println(num+"*9="+num*9);
			num++;     //3.
		}
		System.out.println("over");
		
		/*
		int times = 0;   //1.循环变量的初始化
		while(times<10){ //2.循环的条件
			System.out.println("行动是成功的阶梯");
			times++;     //3.循环变量的改变
		}
		System.out.println("over");
		*/
		/*
		 * 执行过程:
		 *          times=0
		 * true 输出 times=1
		 * true 输出 times=2
		 * true 输出 times=3
		 * true 输出 times=4
		 * true 输出 times=5
		 * true 输出 times=6
		 * true 输出 times=7
		 * true 输出 times=8
		 * true 输出 times=9
		 * true 输出 times=10
		 * false while循环结束
		 * 输出over
		 */
		
		
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

简单@De@小新

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值