我制作的程序会向用户询问一个简单的数学问题,并且必须告诉他们这些问题是正确还是不正确。我收到错误
package exercises;
import java.util.Scanner;
public class Exercises {
public static void main(String[] args) {
Scanner user_input = new Scanner (System.in);
String number;
System.out.println("Consider the following equation: 5x - 10");
System.out.println("Solve for x.")
number = user_input.next();
if (number == 2);{
System.out.println("Correct.");
}else{
System.out.println("Incorrect. The answer is 2.");
}
}
答案 0 :(得分:0)
您的代码有两个主要问题,一个是未成年人。
第一个是if语句后面的分号。分号结束if语句,它是没有花括号的if语句的缩写,如:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_list_song);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
LocalBroadcastManager.getInstance(this).registerReceiver(updateReceiver, new IntentFilter(Constants.ACTION.PLAY_INFO));
storage = new Storage(this);
playinfo = (CardView) findViewById(R.id.playinfo);
prev = (ImageView) findViewById(R.id.prev);
playpause = (ImageView) findViewById(R.id.playpause);
fwd = (ImageView) findViewById(R.id.fwd);
title = (TextView) findViewById(R.id.title);
artist = (TextView) findViewById(R.id.artist);
playinfo.setOnClickListener(this);
prev.setOnClickListener(this);
playpause.setOnClickListener(this);
fwd.setOnClickListener(this);
layoutManager = new LinearLayoutManager(this);
recycler = (RecyclerView) findViewById(R.id.recycler);
recycler.setItemAnimator(new DefaultItemAnimator());
recycler.setLayoutManager(layoutManager);
empty = (TextView) findViewById(R.id.empty);
rvAdapter.setOnItemClickListener(new RVAdapter.OnRvItemClickListener() {
@Override
public void onRvItemClickListener(ArrayList<String> data, int position) {
storage.storeSongs(musics); //stores all musics of the current list in an Array, in case of next and prev
Intent intent = new Intent(Constants.ACTION.PLAY_INFO);
intent.putExtra("title", data.get(0));
intent.putExtra("artist", data.get(1));
intent.putExtra("playStatus", "play");
LocalBroadcastManager.getInstance(getApplicationContext()).sendBroadcast(intent);
storage.storeAudioIndex(position);
Intent intent2 = new Intent(getBaseContext(), MyMusicPlayerService.class);
intent2.setAction(Constants.ACTION.STARTFOREGROUND_ACTION);
startService(intent2);//play music
updateBottom();
}
});
rvAdapter.setOnOptionClickListener(new RVAdapter.OnOptionClickListener() {
@Override
public void onOptionClick(String mode, ArrayList<String> data) {
processOption(mode, data);
}
});
recycler.setAdapter(rvAdapter);
}
省略表达式并只写分号,表示有效的 NOP (无操作),所以
if (a > b) doMethod();
是有效的陈述,基本上什么都不做。
你可能打算
if (a > b) ;
另一个问题是,您的if (number == 2) {
System.out.println("Correct.");
} else {
System.out.println("Incorrect. The answer is 2.");
}
变量是number
,但您将其与String
进行比较。这不起作用,结果将始终为int
。您需要将false
转换为String
,反之亦然,以便进行比较。
请注意,使用int
将String
与String
进行比较并不像您预期的那样(请参阅How do I compare strings in Java?)了解详情,请改用==
。< / p>
因此String#equals
String
的一种可能性是String
:
String number = user_input.next();
if (number.equals("2")) {
另一个是int
int
:
String number = user_input.next();
int asValue = Integer.parseInt(number);
if (asValue == 2) {
或直接使用Scanner#nextInt
:
int number = user_input.nextInt();
if (number == 2) {
小问题是您在以下语句后忘记了分号
System.out.println("Solve for x.") // Semicolon needed
在Java中,每个表达式都必须以分号结尾,它是一种严格的语言。
答案 1 :(得分:0)
您有两个语法错误,两者都与分号;
相关。
第一个错误是此行System.out.println("Solve for x.")
。
在Java中,每个语句必须以;
结尾。这一行必须是System.out.println("Solve for x.");
。
第二个错误出现在if语句中:if (number == 2);{
。你应该在括号后删除分号。正确的代码行是if (number == 2) {
。
答案 2 :(得分:-3)
您正在尝试将library(tidyverse)
DF1 %>%
gather(Role, UserId, TakerId:GiverId) %>%
mutate(Role = str_sub(Role, 1, 5)) %>%
select(UserId, Role, Col1:Col3)
# UserId Role Col1 Col2 Col3
#1 1 Taker 24 37 44
#2 4 Taker 28 31 48
#3 7 Taker 26 38 43
#4 10 Taker 20 35 45
#5 13 Taker 23 39 41
#6 3 Giver 24 37 44
#7 2 Giver 28 31 48
#8 11 Giver 26 38 43
#9 4 Giver 20 35 45
#10 10 Giver 23 39 41
(一个字符串)与一个整数进行比较而无法完成,此处您有两个选项
1)从
读取一个整数number
System.in
2)将
进行比较public static void main(String[] args) { Scanner user_input = new Scanner(System.in); String number; System.out.println("Consider the following equation: 5x - 10"); System.out.println("Solve for x."); number = user_input.next(); if (Integer.parseInt(number) == 2) { System.out.println("Correct."); } else { System.out.println("Incorrect. The answer is 2."); } }
解析为整数,然后将其与int
number