java学习笔记(3)

标签(空格分隔): 学习笔记


1. if语句
如果if后面只有一条语句,{}可以省略。
自己写的话看心情。

2. switch语句

switch(表达式){
case 常量一://final 定义
    语句;
    break; //如果不加break,都执行,所以每一句都加break。
case 常量2:
    语句2;
default: //default不是必须的
    语句3;
}

//  表达式byte short int char String(1.7版本之后)类型是可以的,其他类型不支持
//case后必须是常量
//如果两个case常量重复,会报错


如果每个情况都考虑,会有代码冗余
可以改成
switch(i){
case 1:
case 2:
case 3:
    system.out.print("春季");
    break;
case 6:
case 7:
case 8:
    System.out.print("夏季");
    break;
}

3.循环语句
for 用于循环界限明确的,while用于结束循环条件明确的。
do...while语句:循环体至少执行一次,在判断条件体。

    

4. 编写程序:
从键盘上读入一个学生成绩,存放在变量score中,根据score的 值输出其对应的成绩等级: (代码略)
score>=90 等级: A
70<=score<90 等级: B
60<=score<70 等级: C
score<60 等级: D
方式一:使用if-else
方式二:使用switch-case: score / 10: 0 - 10

2.寻找最大公约数和最小公倍数(动态规划)

import java.io.*;
import java.util.Scanner;
public class test  
{
    //寻找最大公约数
	public static int find_max_gongyue(int a,int b){
		//交换一下,确保a一定比b大
		if(a<b){
			a=a^b;
			b=a^b;
			a=a^b;
		}
		//设置一个临时值,用作动态规划中间值
		int cur=a%b;
		while(cur!=0){
		    //cur 不可能比b大,放心赋值
			a=b;
			b=cur;
			cur=a%b;
		}
		return b;//余数为0的时候,选取b,此值为最大公约数
	}
	//寻找最大公倍数(两数乘积除以最大公约数即可)
	public static int find_max_beishu(int c,int d){
		int gongyue=find_max_gongyue(c,d);
		int tmp=c*d;
		return tmp/gongyue;
	}
	//测试一下,问题不大
	public static void main (String[] args) throws java.lang.Exception
	{
	   int x=find_max_gongyue(20,100);
	   int y=find_max_beishu(20,100);
	   System.out.println(x);
	   System.out.println(y);
		  
	}
} 

3.打印9*9乘法表

import java.io.*;
import java.util.Scanner;
public class test  
{
	
	public static void main (String[] args) throws java.lang.Exception
	{
	   for (int i=1;i<10 ;i++ )
	   {
		   for(int j=1;j<=i;j++){
				System.out.print(j+"*"+i+"="+(i*j)+" ");
		   }
		System.out.println();
	   }
	   
		  
	}
}
//加一个break可以得到比较奇特的乘法表,如果出现在嵌套循环中,结束的是他所在的循环,并不能结束外层循环
posted @ 2019-11-01 19:21  夜空守望者Z  阅读(157)  评论(0编辑  收藏  举报