练习:8

这几天都没发,但并不代表我没写代码。

不说了,直接上代码。
/*
* 2012.3.31
* http://www.yefeng.me
* 代码很多,慢慢梳理
* 等待运行.
*/
import java.util.Scanner;
public class Lianxi16{
public static void main (String[]args){
Scanner input = new Scanner (System.in);
System.out.println ("请输入基本工资:");
int jibengongzi = input.nextInt();//键盘键入基本工资
double wujia = jibengongzi *40/100 ;//计算物价补贴
double fangzu = jibengongzi *25/100;//计算房租补贴
double shiling = jibengongzi + wujia + fangzu ;//计算实领工资
System.out.println ("该员工的工资细目为:");//输出工资数目
System.out.println ("基本工资为:\t"+jibengongzi);//输出基本工资
System.out.println ("物价津贴为:\t"+wujia);//输出物价津贴
System.out.println ("房租津贴为:\t"+fangzu);//输出房租津贴
System.out.println ("员工薪水是:\t"+shiling);//输出员工薪水
}
}

练习数据转换,数值间的运算符

/*
* 2012.3.31
* http://www.yefeng.me
* 用于练习变量间的转换.
* 一共分为两种转换方式:1,缩小转换(double--int);2,放大转换(int--double)[此转换必须为int数据添加(int)]
* 经验:即便double的数值为:305,也会自动变成:305.0这样的数值.
* 开始运算.
* 运行结束,ok!
*/
public class Lianxi15{
public static void main (String[]args){
int a = 300 ;//为a赋值
double b = a + 5 ;//为b赋值并调用a的数值
System.out.println ("B的结果为:"+b);//输出最后的结果b.
System.out.println ("---开始进行缩小转换--");
double c = 3.1415926 ;//为c赋值
int d = ((int)c + 100)*5/10 ;//为d赋值并调用c
System.out.println ("D的结果为:"+d);//输出最后的结果d.
}
}

练习放大(int–double)和缩小(double–int*需注意)转换.

/*
* 2012.3.31
* http://www.yefeng.me
* 获得知识:一定要先乘后除!
* 测试完成,已ok!
*/
import java.util.Scanner;
public class Lianxi14{
public static void main (String[]args){
Scanner input = new Scanner (System.in);
System.out.println ("输入需要计算的华氏度:");
double f = input.nextDouble();//从键盘键入华氏度的数据
double c = (f-32)*5/9;//将键入的华氏度转换为摄氏度
System.out.println ("华氏度为:\t"+f);//输出华氏度的数值
System.out.println ("摄氏度为:\t"+c);//输出计算所得的摄氏度的数值
}
}

算式写法需先乘后除,摄氏与华氏之间的转换

/*
* 2012.3.31
* http://www.yefeng.me
* 测试完成,已ok.
*/
public class Lianxi13{
public static void main (String[]args){
int a = 10 ; //zuo
int b = 8 ; //you
int c = b ; //you
int d = a ; //zuo
System.out.println ("输出互换前手中的纸牌:");//标题
System.out.println ("左手中的纸牌:\t"+a);//互换前左手的纸牌
System.out.println ("右手中的纸牌:\t"+b);//互换前右手的纸牌
System.out.println ("\n\n");//输出空格
System.out.println ("输出互换后手中的纸牌:");//标题
System.out.println ("左手中的纸牌:\t"+c);//输出互换后左手的纸牌
System.out.println ("右手中的纸牌:\t"+d);//输出互换后右手的纸牌
}
}

变量间的简单转换

就这些了,其余的过几天再说。书本上的第二章基本算过了。
向第三章前进!!

[更新]练习:7

点击看本日志最新更新

是否还在为形如1+2+3+4+5…+100=?这样的问题而烦恼?现在不必了!这个问题已经得到解决了!!

有点激动了。

写了一段小java代码来解决此问题,需要注意的是:电脑上必须有能运行java源代码的工具(因为我是初学者,这个小程序目前还只能在my eslipse的控制台上运行)。

java源代码如下:

import java.util.Scanner;
public class Lianxi10{
public static void main (String[]args){
Scanner input = new Scanner(System.in);
System.out.println ("这个小程序的作用是:\n假如我需要计算1+2+3+4+5...+100=?\n那么我就可以运用这个小程序来解决.\n只需输入一个比1大的正整数,即可出现结果.");
System.out.println ("********************************************");
int a = 1; //a的数据为1
System.out.println("输入一个正整数,比如100,然后按回车:");//输出提示文字
int b = input.nextInt(); //输入b的数据
int c = b ; //c的数据等于b
int d = 2; //d的数据等于2
int e = (a+b)*c/d ;//运算公式
System.out.println ("计算结果为:"+e);//输出计算结果
System.out.println ("运算结束,感谢使用!");//end
/*
* 注意:
* 1.a必须为1,否则运算将出现错误
* 2.b必须为正整数,若输入负整数,运算结果将出现偏差(大致为:输入-100,运算结果比实际结果少100,输入-50,运算结果比实际结果少50.)
*/
}
}

 

运行截图:

java运行结果
image-1092

练习:6

import java.util.Scanner;
public class Lianxi9 {
public static void main (String[]args){
Scanner input = new Scanner(System.in);
System.out.print (“STB 的成绩是:”);
int stb = input.nextInt();  //STB分数
System.out.print (“JAVA的成绩是:”); //JAVA分数
int java = input.nextInt();
System.out.print (“SQL的成绩是:”); //SQL分数
int sql = input.nextInt();
int diffen;  //分数差
double avg;
System.out.println (“——————–“);
System.out.println (“STB\tJAVA\tSQL”);
System.out.println (stb + “\t” +java + “\t” +sql);
System.out.println (“——————–“);
diffen = java – sql; //计算java课和sql课的成绩差
System.out.println (“java和sql的成绩差:” +diffen);
avg = (stb + java + sql) / 3 ; //计算平均分
System.out.println (“3 门课的平均分是:” +avg);
}
}

这里面一个数字都没有,最后怎么出来分数的呢?
还有,我按照书上敲的代码,但我运行之后只有一行:“STB 的成绩是:”后面的分数都没有,请问这是与环境有关么?


上面这个本来是我想要问的问题,可我不经意的一个发现已经解开了上面的谜底!

我是如何解开上面这个谜团的?请看:

  • 刚才在运行的时候,我什么也没输入,所以我只看到了一个“STB的成绩是:”
  • Scanner input = new Scanner(System.in);
    int stb = input.nextInt();  //这两行的作用是通过键盘输入得到STB的成绩。
  • **通过键盘输入得到STB的成绩(特别重要),我刚才什么都没做,因此控制台不会返回任何结果。

那么正确的应该是:

  • 敲好代码,然后点运行
  • 控制台自动打开
  • 在控制台的“STB的成绩是:”后面任意输入一个两位数,按回车键
  • 在进入其余两项,均按照先输入数字,后回车的步骤
  • 到最后控制台会显示最后结果。

最后的结果是这样(数字可自设):

STB 的成绩是:20
JAVA的成绩是:50
SQL的成绩是:70
——————–
STB    JAVA    SQL
20    50    70
——————–
java和sql的成绩差:-20
3 门课的平均分是:46.0


我简单分析了下其中的变量(可以自己设置名称,但需按照相应java规则命名):

import java.util.Scanner;
public class Lianxi9 {
public static void main (String[]args){
Scanner input = new Scanner(System.in);
System.out.print (“STB 的成绩是:”);
int stb = input.nextInt(); //STB分数
System.out.print (“JAVA的成绩是:”); //JAVA分数
int java = input.nextInt();
System.out.print (“SQL的成绩是:”); //SQL分数
int sql = input.nextInt();
int diffen; //分数差
double avg;
System.out.println (“——————–“);
System.out.println (“STB\tJAVA\tSQL”);
System.out.println (stb + “\t” +java + “\t” +sql);
System.out.println (“——————–“);
diffen = java – sql; //计算java课和sql课的成绩差
System.out.println (“java和sql的成绩差:” +diffen);
avg = (stb + java + sql) / 3 ; //计算平均分
System.out.println (“3 门课的平均分是:” +avg);
}
}

在上面的例子中用删除线标出的是变量,因为语句System.out.println (“”)中,双引号之间的内容属于在控制台中输出的内容,因此不属于变量(我觉得它只是个名词,没有调用任何变量),所以没有标注。

从这个练习开始,以后的java可能变成”动态”的了。
加油!

练习:5

即将开始引入算术运算符,以后的内容会复杂很多。

知识点也开始深入,今晚写了些代码,按照书上来的。

有些内容实在理解不了。发上来记下,等搞明白了在发练习。

public class Lianxi8 {
public static void main (String[]args){
int Zhang = 60 ; //张的分数
int Wang = 60 ;
int Xu = (Zhang + Wang)*2 ; //xu的分数是张王二人分数之和的二倍
Wang = Zhang ; //王的分数等于张的分数
System.out.println ("Wang的分数:" + Wang );
System.out.println ("xu的分数:" + Xu );
System.out.println ("zhang的分数" + Zhang );
//使用最简单的加法和乘法.
//按照书上的代码敲的.
}
}

java源代码

运行结果:

Wang的分数:60
xu的分数:240
zhang的分数60

下一个练习可能深入一些了。