A.- Le 28 octobre 1985, la Société immobilière X._ a conclu un contrat de bail à loyer avec sieur R._. Il portait sur un appartement de trois pièces avec chambrette situé à Genève, que le locataire occupait depuis le 21 avril 1977. Établi pour une durée d'une année du 1er novembre 1985 au 31 octobre 1986, le bail était renouvelable d'année en année, sauf résiliation donnée trois mois avant l'échéance. Le loyer mensuel s'élevait en dernier lieu à 645 fr. charges comprises. Par avenant du 30 juin 1990, le bail a été transféré aux noms des époux R._, à la suite de leur mariage. Le 7 mars 1997, les époux R._ ont sous-loué l'appartement à dame A._ à partir du 1er avril 1997 pour une durée indéterminée. Le loyer a été fixé à 645 fr. par mois charges comprises. Le bail pouvait être résilié quatre fois l'an, en novembre, février, mai et août, moyennant un préavis de trois mois. Le 10 mars 1997, les locataires ont demandé à la société Y._, qui représentait la bailleresse, l'autorisation de sous-louer l'appartement, en lui transmettant le bail de sous-location. Il s'en est suivi un échange de courriers entre la société Y._ et les époux R._. La régie n'admettait une sous-location que pour une année au maximum et souhaitait connaître la durée de l'absence des locataires; ceux-ci persistaient pour leur part dans leur volonté de sous-louer l'appartement. Par lettre du 4 juin 1997, la société Y._ a pris note que l'appartement litigieux serait occupé par dame A._ jusqu'à la fin août 1997 et a indiqué qu'elle reprendrait contact avec les locataires au début du mois de septembre 1997. Le 24 février 1998, la société Y._ a relancé les locataires pour connaître leurs intentions au sujet de la sous-location. Ceux-ci ont répondu, le 7 mars 1998, que la situation n'avait pas évolué depuis l'été précédent et qu'ils ne manqueraient pas de signaler à la régie tout changement. Le 31 mars 1998, la société Y._ a informé les époux R._ que la société propriétaire souhaitait disposer de tout objet pouvant devenir disponible dans son immeuble, de sorte qu'elle ne pouvait tolérer la sous-location. La bailleresse était prête à accepter une résiliation anticipée du bail moyennant un préavis de 30 jours pour le quinze ou la fin d'un mois. Le 18 avril 1998, les locataires ont confirmé que, pour des raisons personnelles, ils n'entendaient pas résilier le bail. Par avis du 23 avril 1998, la société propriétaire a résilié le contrat de bail des époux R._ pour le 31 octobre 1998 ou pour toute autre échéance légale. B.- Après l'échec de leur requête en conciliation le 7 septembre 1998, les locataires ont saisi, le 7 octobre 1998, le Tribunal des baux et loyers du canton de Genève d'une demande en annulation de congé. La SI X._ a conclu au rejet de la requête des locataires et, reconventionnellement, à leur évacuation. Par jugement du 31 mai 1999, le Tribunal des baux et loyers a annulé le congé du 23 avril 1998. Ce jugement a été confirmé, le 10 avril 2000, par la Cour d'appel en matière de Baux et Loyers, statuant sur appel de la SI X._. C.- Contre l'arrêt du 10 avril 2000, la SI X._ (la défenderesse) interjette un recours en réforme au Tribunal fédéral. Elle conclut principalement à la réforme de la décision attaquée, en ce sens qu'il soit dit que le contrat de bail a été valablement résilié avec effet au 31 octobre 1998 et que les époux R._ soient condamnés à évacuer l'appartement en cause. A titre subsidiaire, elle demande que la cause soit renvoyée à l'autorité cantonale pour qu'elle statue dans le sens des considérants. Les époux R._ (les demandeurs) proposent le rejet du recours et la confirmation de l'arrêt attaqué.