Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 对编程非常陌生,在这个小小的练习中,我看不出我错在哪里_Java_Boolean_Primitive - Fatal编程技术网

Java 对编程非常陌生,在这个小小的练习中,我看不出我错在哪里

Java 对编程非常陌生,在这个小小的练习中,我看不出我错在哪里,java,boolean,primitive,Java,Boolean,Primitive,也许你们中的很多人都知道我们需要做的关于学习原语的练习,我们需要打印h3110 w0r1d 2.0 true 这就是我的 public class main { public static void main(String[] args) { // H3110 w0r1d 2.0 true byte bir = 0; short iki = 31; int uc = 10; long dort = 1; float bes = 2.0f; c

也许你们中的很多人都知道我们需要做的关于学习原语的练习,我们需要打印h3110 w0r1d 2.0 true

这就是我的

public class main {
public static void main(String[] args) {
   // H3110 w0r1d 2.0 true
    byte bir = 0;
    short iki = 31;
    int uc = 10;
    long dort = 1;
    float bes = 2.0f;
    char yedi = 'H';
    char sekiz = 'w';
    char dokuz = 'd';
    char ekstra = ' ';
    char ramk = 'r';
    boolean on = true;

    String son = (yedi + iki + uc + ekstra + sekiz + bir + ramk + dort + dokuz + ekstra + bes + ekstra + on );
    System.out.println(son);







}
}

他们的解决方案是这样的

public class Main {
public static void main(String[] args) {
    byte zero = 0;
    short a = 3;
    int b = 1;
    char d = ' ';
    float e = 2.0f;
    boolean f = true;
    String output = "H" + a + b + b + zero + d + "w" + zero + "r" + b + "d" + d + e + d + f;
    System.out.println(output);
}
}

所以我给了我布尔和浮点错误,但我看不出原语有什么问题

我得到的错误是

Main.java:16: error: bad operand types for binary operator '+'
    String son = (yedi + iki + uc + ekstra + sekiz + bir + ramk + dort + dokuz + ekstra + bes + ekstra + on );
                                                                                                       ^
第一类:浮动 第二类:布尔型 1错误

行:

String son = (yedi + iki + uc ...
将不同类型的多个参数(没有一个参数是字符串)串联到一个字符串中

“解决方案”是通过将字符串连接到其他参数来开始赋值:

String output = "H" + a + b + ...
                 ^
这将把他们中的其他人抛到弦上

通过在开头添加空字符串,可以对第一个示例执行相同的操作:

String son = ("" + yedi + iki + uc ...
              ^

旁注:我完全同意T.J.Crowder在上面的评论…

这个示例之所以有效,是因为所有内容都可以自动转换为字符串,并且加法是左关联的

字符
字符串
之间的区别对您来说可能并不明显
'C'
是一个
字符
文字,而
'C'
是一个
字符串
文字(可以包含多个字符)

让我们看一下示例中字符串连接的几个步骤,从概念上说明如何执行加法:

"H" + a + b + b + zero + d + "w" + zero + "r" + b + "d" + d + e + d + f;
"H3" + b + b + zero + d + "w" + zero + "r" + b + "d" + d + e + d + f;
"H31" + b + zero + d + "w" + zero + "r" + b + "d" + d + e + d + f;
"H311" + zero + d + "w" + zero + "r" + b + "d" + d + e + d + f;
"H3110" + d + "w" + zero + "r" + b + "d" + d + e + d + f;
……等等。每个加法总是一个
字符串
+一些其他值,这很好


另一方面,代码中的添加会尝试添加不兼容的类型,如
int
boolean
,它们不会飞。此外,它尝试将结果存储在
字符串
变量中,这是不可能的,因为结果不是
字符串

通常,在请求帮助时,您应该包括收到的错误消息。当我试图理解你的问题时,这对其他人是一个很大的帮助。正如你所知,我无法立即想象我会让一个新的程序员接受这样的练习的任何理由。如果你的老师给你设置了这样的任务,如果你有选择的话,找一个更好的老师。我没有老师,这个练习来自learnjavaonline.org,我现在正在编辑错误。我会继续做一些有用的教程,而不是荒谬的抽象和毫无意义的。(这里没有否决票,顺便说一句)但是,我能知道为什么“示例”代码有效而我的代码无效吗?另外,你能推荐另一个学习基本java的来源吗?谢谢你的回答。但是现在我不明白为什么它在这个词中特别地说“boolean”和“float”errror@OktayMert回顾为变量声明的类型:
byte bir、float e、boolean f...