javaSE错题集

第一尝试优快云的编程语言功能,先上传一些学习java在编译过程常犯的错误。

//练习:如何使用三元运算符,输出三个数中的较大值。

import java.util.Scanner;

class  Training4
{
	public static void main(String[] args){
		Scanner s = new Scanner(System.in);
		System.out.println("请输入三个数");
		int m = s.nextInt();
		int n = s.nextInt();
		int k = s.nextInt();
		System.out.println("你输入的三个数分别是:m=" + m +",n="+ n +",k="+k);

		int max = (m > n) ? m : n;
//之前错写成了 int max = (m > n) ? max=m : max=n;

		int max2 =(max > k) ?max :  k;
		System.out.println("max=" + max2);
	}
}



/*
从键盘输入小明的期末成绩。
当成绩为100分时,奖励一辆BMW;
当成绩为(80,99]时,奖励一个台iphone5s;
当成绩为[60,80]时,奖励一本参考书;
其它时,什么奖励也没有。

1.条件判断之间可以嵌套
2. ①如果多个条件之间是“互斥”关系,多个条件语句上下顺序是自由的。
   ②如果多个条件之间存在“包含”关系,要求范围小的写在范围大的上面。
*/

import java.util.Scanner;


class Training5
{
	public static void main(String[] args){
		Scanner s = new Scanner(System.in);
		System.out.println("请输入小明的期末成绩");
		int score = s.nextInt();

		if(score == 100){               /*此处注意score==10,不能写成score=10;*/
			System.out.println("奖励一辆BMW");
		}else if(score > 80){			
			System.out.println("奖励一台iPhone5s");
		}else if(score >=60){
			System.out.println("奖励一本参考书");
		}else{
			System.out.println("什么奖励也没有");
		}
	}
}


/*练习 :对学生成绩大于60分的,输出“合格”。低于60分的,输出“不合格”*/
/*
说明:
1.当多个case语句处理的语句块一致时,可以统一来书写
2.一定情况下switch-case与if-else之间可以相互转换。
*/

import java.util.Scanner;

class Training6
{
	public static void main(String[] args){
		Scanner s = new Scanner(System.in);
		System.out.println("请输入一个学生的成绩");
		int score = s.nextInt();


		switch (score / 10)
		{
		case 10 :  /*原来写成了case : 10 ; 系统提示错误,该表达不是语句。*/
		case 9:
		case 8:
		case 7:
		case 6:
		System.out.println("合格");
		break;
		case 5:
		case 4:
		case 3:
		case 2:
		case 1:
		case 0:
		System.out.println("不合格");
		break;	
		default :
			System.out.println("输入有误!!");
		}
	}
}


/*5. 输入三个值, 将其从大到小排列.例如输入10 20 19 , 最后显示20 19 10*/

import java.util.Scanner;

class T5
{
	public static void main(String[] args){
		Scanner s = new Scanner(System.in);/*Scanner s = new Scanner(String.in);//错误: 找不到符号*/
		System.out.println("请输入三个数值a、b、c,分别用回车间隔");
		int a = s.nextInt();
		int b = s.nextInt();
		int c = s.nextInt();
		System.out.println("您输入的数值分别为:a=" + a +",b=" + b + ",c=" + c);
		System.out.println("从大到小的排列顺序为:");

		if(a > b){
			if(c > a){
				System.out.println("c=" + c + ",a=" + a + ",b=" + b);
			}else if(b > c){
				System.out.println("a=" + a + ",b=" + b + ",c=" + c);
			}else{
				System.out.println("a=" + a + ",c=" + c + ",b=" + b);
			}
		}else{   //b>a
			if(c > b){
				System.out.println("c=" + c + ",b=" + b + ",a=" + a);
			}else if(a > c){
				System.out.println("b=" + b + ",a=" + a + ",c=" + c);
			}else{
				System.out.println("b=" + b + ",c=" + c + ",a=" + a);
			}
		}
	}
}

/*
使用while语句,实现从键盘读入个数不确定的整数,并判断读入的正数和负数的个数,输入为0时结束程序。

*/
import java.util.Scanner;
class Test3 
{
	public static void main(String[] args) 
	{
		Scanner s = new Scanner(System.in);
		int i = 1;
		int pos = 0;
		int nag = 0;
		while (true)
		{
			System.out.println("请输入第" + i + "个数:");
			int a = s.nextInt();
			if (a > 0){
				pos++;
			}
/*if (a <0){
				nag++;
			}*/
            /*语法没有错误,但逻辑错误;改正加else,表示当第一个if为false时才执行这个if语句*/
else if (a <0){   
				nag++;
else{
				break;
			}
			i++;
		}
		System.out.println("正数的个数为:" + pos + "个");
		System.out.println("负数的个数为:" + nag + "个");
	}
}


/**
	编写一个方法,打印形如[1,1,1,1]的数组
	*/
	public static void printArr(int[] a){
		System.out.print("[");
		for(int i=0;i<a.length;i++){  /*for(i=0;i<a.length;i++) //报错,未定义i变量类型*/
			if(i==a.length-1){   /*if(i=a.length-1) //报错:不兼容的类型: int无法转换为boolean */
				System.out.print(a[a.length-1] + "]");
			}else{
				System.out.print(a[i] + ",");
			}

		}

	}
//**	数组查表法(根据键盘录入索引,查找对应星期),另外给出星期几返回对应的索引值
			*/
import java.util.Scanner;

class Test1
{
	public static void main(String[] args){
		Scanner s = new Scanner(System.in);
		System.out.println("请输入一个0-6的整数");
		int a = s.nextInt();
		String[] arr = {"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
		findWeek(arr , a);

		System.out.println("请输入一个‘星期几’");
		String week = s.next();/**String week = s.nextString(); 报错: 找不到符号。*/
		int i = findIndex(arr , week);
		System.out.println(week + "的对应数值为" + i);	
	}

	/**查找数组值
	*/
	public static void findWeek(String[] arr, int w){
		if(w>7 || w<0){
		System.out.println("请输入正确的数值。");
			}
		for(int i = 0;i<arr.length;i++){
			if(w == i){
				System.out.println("今天是:" + arr[i]);
			}				
		}
	}

	/*
	输出一个星期几的索引
	*/

	public static int findIndex(String[] arr,String week){
         int result = -1;
		for(int i =0;i<arr.length;i++ ){
			if(week.equals(arr[i])){  /* if(week.equal(arr[i]))  报错:找不到符号*/
				result = i;
			}
		}
		return result;	
	}

}


/*打印杨辉三角形*/
class TYH
{
	public static void main(String[] args){
		int[][] yangHui = new int[10][];/*int[][] = new yangHui[10][];//报错:不是语句*/
		for(int i = 0;i < yangHui.length;i++){
			yangHui[i] = new int[i + 1];
		}
		for(int i = 0 ;i < yangHui.length; i++){
			for(int j = 0 ;j < yangHui[i].length;j++ ){/*for(int j = 0 ;j < yangHui[i].length;i++ );//错误:运行提示:Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 10         at TYH.main(TestyangHui.java:40)*/
				yangHui[i][0] = yangHui[i][i] = 1;
				if(i > 1 && j > 0 && j < i){
					yangHui[i][j] = yangHui[i-1][j-1] + yangHui[i-1][j]; 
				}
			}
		}
		for(int i = 0;i < yangHui.length;i++){
			for(int j = 0;j < yangHui[i].length;j++){
				System.out.print(yangHui[i][j] + "\t");/*System.out.println(yangHui[i][j] + "\t");//错误:运行结果不符*/
			}
			System.out.println();
		}
		System.out.println("--------------------------------------------------------------------------------------");
	}

}




/*练习类和对象建立
*/

class TrainingClass1
{
	public static void main(String[] args){
		Dog d = new Dog();
		System.out.println(d.name);
		System.out.println(d.color);
		d.watch();/*d.watch; 编译错误:不是语句*/
		d.catchMouse();/*d.catchMouse; 编译错误:不是语句*/
	}
}
//建立Dog类;
class Dog
{
	String name = "大黄";
	String color = "yellow";/*String color = "yellow"   编译错误:需要";"*/
	public void watch(){
		System.out.println("看家");
	}

	public void catchMouse(){
		System.out.println("抓老鼠");
	}
}

/*练习构造方法*/
class Student
{
	private String name;
	private int age;

	public Student(){
		System.out.println("这是一个无构造方法");
	}
	public Student(String name){
		this.name = name;
		System.out.println("这是一个有参构造方法");
	}
	public Student(int age){
		this.age = age;
		System.out.println("这是一个有参构造方法");
	}
	public Student(String name,int age){
		this.name = name;
		this.age = age;
		System.out.println("这是一个有参构造方法");
	}
	public void show(){
		System.out.println("name=" + name + ",age=" + age);/*System.out.println("name=" + name",age=" + age);//报错*/
	}
}

class ConstrustDemo
{
	public static void main(String[] args){  /*public static void main(String[]){  //错误:需要标识符*/
		Student s1 = new Student();
		s1.show();
		Student s2 = new Student("fanbingbibg");
		s2.show();
		Student s3 = new Student("fanbingbing",27);
		s3.show();
		Student s4 = new Student(29);
		s4.show();
	}
}

/*用有参和无参的构造方法练习手机类*/


class Phone
{
	private String brand;
	private int price;
	private String color;
	

	public Phone(){
	}
	public Phone(String brand,int price,String color){/*public Phone(String brand,int price;String color) //错误*/
		this.brand = brand;
		this.price = price;
		this.color = color;
	}
	public void setBrand(String Brand){
		this.brand = brand;
	}
	public String getBrand(){
		return brand;
	}
	public void setPrice(int price){
		this.price = price;
	}
	public String getColor(){
		return color;
	}
	public void setColor(String color){
		this.color =color;
	}
	public int getPrice(){
		return price;
	}
	public void show(){
		System.out.println("brand=" + brand+",price="+price+",color="+ color);
	}
}

class DemoPhone{
	public static void main(String[] args){
		Phone p = new Phone("小米",2000,"黑色");/*Phone p = new Phone("小米",2000,黑色); //错误:非法字符。逗号不能为全角字符,"黑色"双引号没有加*/
		p.show();
		p.setBrand("苹果");
		p.setPrice(5000);
		p.setColor("土豪金");
		p.show();
		System.out.println("brand="+p.getBrand()+",price="+p.getPrice()+",color="+p.getColor());
/*System.out.println("brand="+p.getBrand +",price="+p.getPrice +",color="+ getColor );错误:找不到符号*/
	}

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值